找出这个数(难度:半颗星)

墨蓝 2022-06-15 05:45 682阅读 0赞

求一个正整数,这个数满足如下条件:

  1. 这个数的平方必须是四位数
  2. 这个数的三次方必须是六位数
  3. 而且这四位数和六位数每位数都不一样。

参考代码:

  1. #include <stdio.h>
  2. int main()
  3. {
  4. int i, j, GoNextLoop, flag[10], nCnt;
  5. for (i = 32; i < 100; i++)//在平方必须是四位数的范围内寻找
  6. {
  7. int num1 = i * i;
  8. int num2 = i * i * i;
  9. for (j = 0; j < 10; j++)
  10. flag[j] = 0;
  11. GoNextLoop = 0;
  12. nCnt = 0;
  13. while (num1)
  14. {
  15. if (flag[num1 % 10] == 1)
  16. {
  17. GoNextLoop = 1;
  18. break;
  19. }
  20. flag[num1 % 10] = 1;
  21. num1 /= 10;
  22. nCnt++;
  23. }
  24. if (GoNextLoop == 1)
  25. continue;
  26. while (num2)
  27. {
  28. if (flag[num2 % 10] == 1)
  29. break;
  30. flag[num2 % 10] = 1;
  31. num2 /= 10;
  32. nCnt++;
  33. }
  34. if (nCnt == 10)
  35. printf("%d\n", i);
  36. }
  37. return 0;
  38. }

运行结果:

这里写图片描述

发表评论

表情:
评论列表 (有 0 条评论,682人围观)

还没有评论,来说两句吧...

相关阅读