1 条题解
-
0
#include<bits/stdc++.h> using namespace std; long long n,sum,ans,a[10],x,s;//为了防止sum和ans过大,这里采用long long int main(){ cin>>n; for(;;)//题目说了ans<=10^18,所以必有答案 { s=0;//s表示sum有0~9的数的个数,为什么每一次都要赋初值,是因为下面的数组没重复赋值 x++;//x代表 1*n,2*n,3*n......不停累加 for(int i=1; i<=9; i++) if(a[i]>0)s++;//下标计数,if(a[i]>0)代表sum出现过0~9的某一个数 if(s==9){cout<<ans;break;}//s=9就代表0~9全都出现过 sum=n*x,ans=sum; while(sum) a[sum%10]++,sum/=10;//sum进行拆位,在a[0]~a[9]赋值,表示出现过 } return 0; }
- 1
信息
- ID
- 532
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 10
- 标签
- 递交数
- 6
- 已通过
- 5
- 上传者