[GESP202306 二级] 自幂数判断

GESP编程共123题,本题是整站第1378题,已经有人完成了本题,加油!

题目描述

自幂数是指,一个 N 位数,满足各位数字 N 次方之和是本身。例如,153 是 3 位数,其每位数的 3 次方之和,13+53+33=153,因此 153 是自幂数;1634 是 4 位数,其每位数的 4 次方之和,14+64+34+44=1634,因此 1634 是自幂数。现在,输入若干个正整数,请判断它们是否是自幂数。

输入格式

输入第一行是一个正整数 M,表示有 M 个待判断的正整数。约定 1≤M≤100。

从第 2 行开始的 M 行,每行一个待判断的正整数。约定这些正整数均小于 108。

输出格式

输出 M 行,如果对应的待判断正整数为自幂数,则输出英文大写字母 T,否则输出英文大写字母 F。

提示:不需要等到所有输入结束在依次输出,可以输入一个数就判断一个数并输出,再输入下一个数。

输入输出样例

输入 #1

3
152
111
153

输出 #1

F
F
T

输入 #2

5
8208
548834
88593477
12345
5432

输出 #2

T
T
T
F
F

别灰心,再试一次!

真题解析

【题目大意】

判断M个给定的整数是否是自幂数。一个x位的整数n是自幂数的条件是:各位数字的x次方之和等于n。给定的正整数均小于10^8。

【考纲知识点】

多层分支/循环结构(二级)

【解题思路】

1. 每次输入n之后,首先计算n的位数l。可以把n赋值给t,然后不断把t除以10,直到t等于0为止,每除一次就把变量l加1。

2. 得到位数l后,再次把t赋值为n,然后使用while循环,每次取t的个位,计算其l次方计入总和sum,然后把t除以10,直到t等于0为止。

3. 如果sum等于n,说明n是自幂数,按照题目要求输出即可。

【参考程序】

本站题目仅供学习,GESP版权归CCF所有,如有侵权请联系删除。站长陈老师QQ及微信:208234。