题意非常简单,找出一个数x,使得x,2x,3x,4x,5x,6x包含的数字相同但是顺序不同。
其实如果想到了
17=0.142857⋯
1
7
=
0.142857
⋯
,就会想到142857可能是答案,但是不敢确定是最小的,还是写代码验证一下。
只要暴力寻找就可以了,代码如下:
#include <bits\stdc++.h>
using namespace std;
bool check(int x,int *cal1){
int cal2[10]={0};
while(x){
cal2[x%10]++;
x/=10;
}
for (int i=0;i<10;i++){
if (cal1[i]!=cal2[i]) return false;
}
return true;
}
int main(){
for (int i=1;;i++){
int cal1[10]={0},x=i;
while(x){
cal1[x%10]++;
x/=10;
}
bool boolean=true;
for (int j=2;j<=6&&boolean;j++){
boolean&=check(i*j,cal1);
}
if (boolean){
printf("%d",i);
return 0;
}
}
}