题目标题: 猜年龄

美国数学家维纳(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
",i,i*i*i,i*i*i*i);
        break;
        }
    }
    
    return 0;
}

  

  

原文地址:https://www.cnblogs.com/zeze/p/cnj.html