新同学年龄

班里来了一名新同学,很喜欢学数学,同学们问他年龄的时候,他说我的年龄平方是个三位数,立方是个四位数,四次方是个六位数。三次方和四次方正好用遍0、1、2、3、4、5、6、7、8、9这10个数字,求该同学的年龄。

源代码如下:

  1. #include<stdio.h>
  2. int main(void)
  3. {
  4. int  a[10],s[10]={0};
  5. int i;
  6. long x,sum1,sum2;                         //储存为长整型,六位数
  7. x=18;                                            //按照条件计算,x从18开始符合条件
  8. do
  9. {
  10. sum1=x*x*x;
  11. for(i=0;i<=3;i++)
  12. {
  13. a[i]=sum1%10;                          //保存立方的每位数字
  14. sum1/=10;
  15. }
  16. sum2=x*x*x*x;
  17. for(i=4;i<=9;i++)
  18. {
  19. a[i]=sum2%10;                               //保存四次方的每位数字
  20. sum2/=10;
  21. }
  22. for(i=0;i<=9;i++)
  23. s[a[i]]++;                                       //将每位置为1
  24. for(i=0;i<=9;i++)
  25. {
  26. if(s[a[i]]==1)                                         //测试是否每个数都存在
  27. {
  28. if(i==9)
  29. printf("the number is %d\n",x);
  30. }
  31. else
  32. break;
  33. }
  34. x++;
  35. }while(x<22);
  36. return 0;
  37. }

效果图:

C语言之新同学年龄-LMLPHP

05-07 15:18