新同学年龄
班里来了一名新同学,很喜欢学数学,同学们问他年龄的时候,他说我的年龄平方是个三位数,立方是个四位数,四次方是个六位数。三次方和四次方正好用遍0、1、2、3、4、5、6、7、8、9这10个数字,求该同学的年龄。
源代码如下:
- #include<stdio.h>
- int main(void)
- {
- int a[10],s[10]={0};
- int i;
- long x,sum1,sum2; //储存为长整型,六位数
- x=18; //按照条件计算,x从18开始符合条件
- do
- {
- sum1=x*x*x;
- for(i=0;i<=3;i++)
- {
- a[i]=sum1%10; //保存立方的每位数字
- sum1/=10;
- }
- sum2=x*x*x*x;
- for(i=4;i<=9;i++)
- {
- a[i]=sum2%10; //保存四次方的每位数字
- sum2/=10;
- }
- for(i=0;i<=9;i++)
- s[a[i]]++; //将每位置为1
- for(i=0;i<=9;i++)
- {
- if(s[a[i]]==1) //测试是否每个数都存在
- {
- if(i==9)
- printf("the number is %d\n",x);
- }
- else
- break;
- }
- x++;
- }while(x<22);
- return 0;
- }
效果图: