009讲
求大神帮我解读一下,小甲鱼水仙花的程序,没有注释有点看不透,万分感谢!看注释吧~ 这里举个例子 , 当循环到 153时候的运行过程 :
for i in range(100, 1000):# 找100~999的水仙花数
sum = 0# 初始化数值,用于后面计算 百十个位数各自3次方的总和
temp = i# 找个临时变量来暂时赋值,用于记录本身的值,因为后面计算会改变原本的值
while temp:
# 将temp 作为循环条件
# 假设第1次循环temp = 153
# 则第2次循环temp = 15
# 第3次temp=1
# 第4次因temp=0退出循环
sum = sum + (temp % 10) ** 3
# 第1次循环 sum = 0+(153%10)**3,sum = 27
# 第2次循环 sum = 27+(15%10)**3,sum = 152
# 第3次循环 sum = 152+(1)**3 , sum = 153
temp //= 10
# temp//10 = 15,则第1次循环 temp = 15
# 第2次循环 temp//10 = 1 ,temp=1
# 第3次 temp//10 = 0 则 temp=0
if sum == i:# 退出循环后判断是否与本身相等, 若是打印,不是则开启下一次for循环
print("100-999之间的水仙花数有:", end="")# print 默认参数end ='\n' 换行符号 我们用end="" 覆盖他的默认值 就不会换行
print(i)
可以参考下这个:戳我前进 Twilight6 发表于 2020-7-15 07:57
看注释吧~ 这里举个例子 , 当循环到 153时候的运行过程 :
懂了,感谢感谢 heidern0612 发表于 2020-7-15 07:58
可以参考下这个:戳我前进
看懂了,真的是大神写的代码,感谢感谢 如果问题已经接近 ,别忘记设置【最佳答案】~ print('----------------------输出水仙花数100—999------------------------')
for i in range(100,1000):#找出100-999的水仙花数,设置1000是因为range只到末位数-1
sum=0#初始化一个存放后面各自3次方的值
a=i//100#百位的值
b=(i-a*100)//10#用i减去百位整百余下的为十位上的取整得到十位上的数
c=i%10#得到个位上的数
sum=a**3+b**3+c**3#求和
if sum==i:#水仙花数的判断条件
print(i,end=" ")
当时答案代码也是没理解透,当时我的答案是这样的,有点low,但是希望能够参考 洋si子 发表于 2020-7-15 10:49
print('----------------------输出水仙花数100—999------------------------')
for i in range(100,1000 ...
感谢感谢,通俗易懂,很好的
页:
[1]