未知错误求助
  • 板块灌水区
  • 楼主Light_az
  • 当前回复2
  • 已保存回复2
  • 发布时间2022/10/20 18:55
  • 上次更新2023/10/27 06:45:39
查看原帖
未知错误求助
654958
Light_az楼主2022/10/20 18:55

Rt

#include<bits/stdc++.h>
using namespace std;
long long n,m,cnt=0,t=0,k,x,y;
long long mini=INT_MAX;
const long long N=1e5+10;
bool check(long long n){
	while(n){
		if(n%10>1)
			return 1;
		n/=10;
	}
	return 0;
}
long long f(long long n){
	long long ans=0;
	while(n){
		ans++;
		n/=10;
	}
	return ans;
}
void dfs(long long n,long long step){
	long long num=f(n);
	if(!check(n)){
		return ;
	}
	if(x-num+step>mini){
		return ;
	}
	if(num==x){
		mini=min(mini,step);
		return ;
	}
	long long k=n;
	while(k){
		if(k%10>1){
			dfs(n*(k%10),step+1);
		}
		k/=10;
	}
	return ;
}
int main(){
	cin>>x>>n;
	dfs(n,0);
	if(mini==INT_MAX){
		cout<<-1;
	}
	else{
		cout<<mini;
	}
	return 0;
}

2022/10/20 18:55
加载中...