题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
有一个 6 位的正整数,它有个很神奇的性质:
分别用 2,3,4,5,6 去乘它,得到的仍然是 6 位数,并且乘积中所包含的数字与这个 6 位数完全一样!只不过是它们的顺序重新排列了而已。
请计算出这个 6 位数。
运行限制
- 最大运行时间:1s
- 最大运行内存: 128M
题目很简单,但是就是卡了我好久,可能还是菜叭。。。。。
#include <iostream>
#include <cstring>
using namespace std;
const int N = 10;
int a[N] , j;
bool pd(int p , int q){
memset(a , 0 , sizeof(a));
if(p < 1000000 && q < 1000000){
while(p){
a[p%10]++;
p = p / 10;
}
while(q){
a[q%10]--;
q = q / 10;
}
for(j = 0 ; j < 10 ; j ++){
if(a[j] != 0){
return false;
break;
}
}
if(j == 10) return true;
}
else return false;
}
int main()
{
for(int i = 100000 ; i <= 999999 ; i ++){
if((pd(i , 2 * i)&&pd(i , 3 * i)&&pd(i , 4 * i)&&pd(i , 5 * i)&&pd(i , 6 * i)) != 0)
cout << i << endl;
}
return 0;
}