美国数学家维纳(N.Wiener)智力早熟,11岁就上了大学。
他曾在1935~1936年应邀来中国清华大学讲学。 一次,他参加某个重要会议,年轻的脸孔引人注目。 于是有人询问他的年龄,他回答说: “我年龄的立方是个4位数。我年龄的4次方是个6位数。这10个数字正好包含了从0到9这10个数字,每个都恰好出现1次。” 请你推算一下,他当时到底有多年轻。
提示:
for(int i=0; i<100; i++){
s = 把立方与4次方拼串 if(test(s)==false) continue; print(i); }
#include<iostream> #include<sstream>//头文件stringstream #include<string> using namespace std; string num(int i)//数字转字符串 { stringstream ss; ss<<i; return ss.str(); } int num2(string s)//字符串转数组 本题没用到 可以忽略 { int nu; stringstream ss(s); ss>>nu; return nu; } bool test(string ss)//测试自定义函数 { int i; int a[10] = {0}; for(i = 0; i < ss.length(); i++) a[(int)(ss[i] - ‘0‘)]++; for(i = 0; i < 10; i++) if(a[i] != 1) return false; return true; } int main() { int i; for(i = 0; i < 100; i++) { string s = num(i*i*i)+num(i*i*i*i); //字符串拼接 if(test(s) == false)//测试字符串中0~9出现的次数 continue; else{ cout<<i;//输出年龄 break; } } return 0; }