一个同学的年龄的平方是三位数,立方四个四位数,四次方是个六位数,三次方和四次方正好用遍0,1,2,3,4,5,6,7,8,9这十个数字,问他的年龄
#include<stdio.h>#include<math.h>
int main(){
int age = 10;
long n2,n3,n4,num[10],s[10];
int i;
for(;age <= 21;age++)//对所有可能的年龄穷举
{
i = 0;
n2 = pow(age,2);
n3 = pow(age,3);
n4 = pow(age,4);
while(n3 != 0)//把年龄的3次方的各个数字存到数组
{
num[i++] = n3 % 10;
n3 /= 10;
}
while(n4 != 0)//把年龄的4次方的各个数字存到数组
{
num[i++] = n4 % 10;
n4 /= 10;
}
for(i = 0;i <= 9;i++)//统计上面数组中各个数字出现的个数
s[num[i]]++;
for(i = 0;i <= 9;i++)//判断有无重复数字
{
if(s[i] == 1)//如果出现的次数为1
{
if(i == 9)//表示前面的数字都出现过一次才执行
printf("the number is %d",age);
}else
break;
}
}
}