前言
大概是最后一次参加蓝桥杯,Python组模拟题练习,仅作为个人总结,分享给有需要的人,如有错误,请纠正,万分感谢!
问题描述
求出所有的“水仙花数”。所谓的“水仙花数”,是指一个3位数,其各位数字的立方和等于该数本身。
输入格式
程序使用for循环遍历所有三位数整数,不需要手动输入
输出格式
遇到水仙花数输出
样例输入
无输入
样例输出
例:
153
370
371
407
数据规模与约定
输入数据中每一个数的范围。
例:100~999
时间限制:1.0s 内存限制:256.0MB
解答
1. 代码:
for i in range(100,1000): #设定范围,i取值从100~999
t=i #将i“放”进t里保存下来,假设此时i=123,则t=123
g=i%10 #个位是i对10取余得到的结果,即i%10=3
i//=10 #将个位“扔掉”,即i//10=12
s=i%10 #十位是扔掉个位后的i对i对10取余得到的结果,即i%10=2
i//=10 #将十位“扔掉”,得到百位,即i//10=1
if g**3+s**3+i**3==t: #x**3表示x的3次方
print(t)
2. 重点知识:
- for循环遍历的范围设定:
for i in range(a,b):就是从a到b-1
for i in range(n):就是从0到n-1 - //表示向下取整得到为整数
/则得到为浮点数 - x的n次方:x**n