【青少年编程】【蓝桥杯】水仙花数
水仙花数
1. 题目要求
水仙花数也被称为超完全数字不变数、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数,它的每个位上的数字的3次幂之和等于它本身(例如:1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3 = 153
)
要求:
(1)输入一个三位数n,判断是否为水仙花数,如果是则输出“是水仙花数!”,不是则输出“不是水仙花数!”;
(2)编程计算出1000以内的水仙花数。
效果如图所示:
2. 设计思路与实现
(1)角色分析
角色:小猫
(2)背景分析
背景:Chalkboard
(3)脚本编写
「a. 角色:小猫」
定义一个函数 是否为水仙花数(数字),通过该函数可以判断传入的数字是否为水仙花数。
一个数对10取余可以获得该数字个位上的数字。
一个数除以10并向下取整可以获得该数字消除个位数字后的数字。
如果每一位上的数字的3次幂之和等于它本身,该数就是水仙花数,返回true,否则返回false。
上面的代码很好理解。
第一部分,输入一个数字调用函数判断是否为水仙花数,如果是则输出“是水仙花数!”,不是则输出“不是水仙花数!”;
第二部分,计算出1000以内的水仙花数,由于题目所给图示的结果为三位数,所以从100开始至999,把是水仙花数的数值存入列表。最后输出列表即可。
3. 评分标准
下列各评分项累积积分,前一项未得满分,后续项不得分,共50计分点
8分:添加正确的背景角色,运行程序后,能正常发出询问;
20分:能对输入的三位数进行正确的判断;
22分:能编程计算出1000以内的水仙花数,并输出到舞台,且符合题目要求。
赞 (0)