美国数学家维纳(N.Wiener)智力早熟,11岁就上了大学。他曾在1935~1936年应邀来中国清华大学讲学。
一次,他参加某个重要会议,年轻的脸孔引人注目。于是有人询问他的年龄,他回答说:“我年龄的立方是个4位数。我年龄的4次方是个6位数。这10个数字正好包含了从0到9这10个数字,每个都恰好出现1次。”
请你推算一下,他当时到底有多年轻。
提示:
先用/10和%10把各个位上的数取出来,然后判断是否相等
#include <stdio.h>
#include<math.h>
int main()
{
int age=0;
for(int i=11;i<30;i++){
int a=pow(i,3);
int b=pow(i,4);
int m=0,n=0;
int j=0,k=0;
int arr[10];
while(a){
arr[j]=a%10;
j++;
a/=10;
}
m=j;
while(b){
arr[k]=b%10;
k++;
b/=10;
}
n=k;
int flag=1;
for(int i=0;i<10;i++){
for(int j=i+1;j<10;j++){
if(arr[i]==arr[j]){
flag=0;
break;
}
}
}
if(m==4&&n==6&&flag==1){
age=i;
break;
}
}
printf("%d",age);
return 0;
}