猜年齡
阿新 • • 發佈:2018-03-05
strings 10個 數組 class 會議 als length name 數學
美國數學家維納(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; }
猜年齡