[蓝桥省题](C2013_1)猜年龄

美国数学家维纳(N.Wiener)智力早熟,11岁就上了大学,他曾在1935-1936年应邀来到中国清华大学讲学,一次,他参加某个重要会议,年轻的脸孔引人注目,于是有人询问他年龄,他回答说:

“我年龄的立方是一个4位数,我年龄的4次方是一个6位数,这10个数字正好包含了从0到9这10个数字,每个都恰好出现1次”

请你推算一下,他当时有多年轻【通过浏览器直接提交他当时年龄的数字,注意不要提交解答过程,或者其他文字】

题意:从题目可知“年轻”这个关键字,则需要找到他最小的那个符合“立方为四位数,4次方为6位数,且这十位数不重复都为0-9”的那个数即可

思路:由于本题是一道填空题,我们并不需要考虑其性能问题,而且数据范围也不大,我们可以使用枚举,来肉眼观察结果然后找到符合要求的那个数字,枚举的范围我们从题意可知,他11岁才上的大学,则参加重要会议也肯定是在这之后,则范围是在【10,n】这个区间内,又由于他很年轻,我们可以从小的范围先去查询,逐步到大的范围。

代码如下所示:

#include<stdio.h>
#include<stdlib.h>
int main()
{
    for (int i = 10; i < 30; i++)
    {
        int l1 = i * i * i;
        int l2 = l1 * i;
        if (l1 >= 1000 && l1 < 10000 && l2 >= 100000 && l2 < 1000000)
            printf("%d  %d  %d\n", i, l1, l2);
    }

    system("pause");
    return 0;
}

运行结果如下所示:

img

我们可以很清晰的看到,只有18满足题目要求。则答案为18

教学视频如下:

<video controls="" src="https://axuannote-1304271763.cos.ap-nanjing.myqcloud.com/%E8%93%9D%E6%A1%A52013_1.webm";></video>

本文链接:

https://nullcode.fun/90.html
1 + 1 =
快来做第一个评论的人吧~