题目标题: 猜年龄
美国数学家维纳(N.Wiener)智力早熟,11岁就上了大学。他曾在1935~1936年应邀来中国清华大学讲学。
一次,他参加某个重要会议,年轻的脸孔引人注目。
于是有人询问他的年龄,他回答说: “我年龄的立方是个4位数。
我年龄的4次方是个6位数。这10个数字正好包含了从0到9这10个数字,每个都恰好出现1次。” 请你推算一下,他当时到底有多年轻。
通过浏览器,直接提交他那时的年龄数字。 注意:不要提交解答过程,或其它的说明文字。
#include<stdio.h> #include<string.h> #include<stdlib.h> int main() { __int64 a,i,j,f; char s1[10],s2[10]; int b[10]; for(i=10;;i++) { a=0; __int64 k=i*i*i; __int64 t=i*i*i*i; itoa(k,s1,10); itoa(t,s2,10); if(strlen(s1)==4&&strlen(s2)==6) { memset(b,0,sizeof(b)); for(j=0;j<4;j++) { f=k%10; k/=10; if(!b[f]) { a++; } b[f]=1; } for(j=0;j<6;j++) { f=t%10; t/=10; if(!b[f]) { a++; } b[f]=1; } } if(a==10) { printf("%d %d %d\n",i,i*i*i,i*i*i*i); break; } } return 0; }