找出这个数(难度:半颗星)
求一个正整数,这个数满足如下条件:
- 这个数的平方必须是四位数
- 这个数的三次方必须是六位数
- 而且这四位数和六位数每位数都不一样。
参考代码:
#include <stdio.h>
int main()
{
int i, j, GoNextLoop, flag[10], nCnt;
for (i = 32; i < 100; i++)//在平方必须是四位数的范围内寻找
{
int num1 = i * i;
int num2 = i * i * i;
for (j = 0; j < 10; j++)
flag[j] = 0;
GoNextLoop = 0;
nCnt = 0;
while (num1)
{
if (flag[num1 % 10] == 1)
{
GoNextLoop = 1;
break;
}
flag[num1 % 10] = 1;
num1 /= 10;
nCnt++;
}
if (GoNextLoop == 1)
continue;
while (num2)
{
if (flag[num2 % 10] == 1)
break;
flag[num2 % 10] = 1;
num2 /= 10;
nCnt++;
}
if (nCnt == 10)
printf("%d\n", i);
}
return 0;
}
运行结果:
还没有评论,来说两句吧...