/*1、题目标题: 猜年龄
美国数学家维纳(N.Wiener)智力早熟,11岁就上了大学。他曾在1935~1936年应邀来中国清华大学讲学。
一次,他参加某个重要会议,年轻的脸孔引人注目。于是有人询问他的年龄,他回答说:
“我年龄的立方是个4位数。我年龄的4次方是个6位数。这10个数字正好包含了从0到9这10个数字,每个都恰好出现1次。”
请你推算一下,他当时到底有多年轻。*/
#include<iostream.h>
#include<string>
int main()
{
int x;
int m[10],visite[10];//用于检验的数组
memset(visite,0,10*sizeof(int));
for(x=11;x<50;x++)
{
int s3=x*x*x;
int k=s3;
while(k)
{
m[k%10]=k%10;
visite[k%10]++;
k/=10;
}
int s4=s3*x;
while(s4)
{
m[s4%10]=s4%10;
visite[s4%10]++;
s4/=10;
}
for(int i=0;i<10;i++)
{
if(visite[i]!=1)
break;
}
if(i<10)//用于清零
memset(visite,0,10*sizeof(int));
else
{
cout<<x<<endl;
break;
}
}
return 0;
}
美国数学家维纳(N.Wiener)智力早熟,11岁就上了大学。他曾在1935~1936年应邀来中国清华大学讲学。
一次,他参加某个重要会议,年轻的脸孔引人注目。于是有人询问他的年龄,他回答说:
“我年龄的立方是个4位数。我年龄的4次方是个6位数。这10个数字正好包含了从0到9这10个数字,每个都恰好出现1次。”
请你推算一下,他当时到底有多年轻。*/
#include<iostream.h>
#include<string>
int main()
{
int x;
int m[10],visite[10];//用于检验的数组
memset(visite,0,10*sizeof(int));
for(x=11;x<50;x++)
{
int s3=x*x*x;
int k=s3;
while(k)
{
m[k%10]=k%10;
visite[k%10]++;
k/=10;
}
int s4=s3*x;
while(s4)
{
m[s4%10]=s4%10;
visite[s4%10]++;
s4/=10;
}
for(int i=0;i<10;i++)
{
if(visite[i]!=1)
break;
}
if(i<10)//用于清零
memset(visite,0,10*sizeof(int));
else
{
cout<<x<<endl;
break;
}
}
return 0;
}