马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
题目--
1. 寻找水仙花数
题目要求:如果一个3位数等于其各位数字的立方和,则称这个数为水仙花数。例如153 = 1^3+5^3+3^3,因此153是一个水仙花数。编写一个程序,找出所有的水仙花数。
遇到的问题是:
我手敲的代码 和 直接网页上点复制代码,运行的结果不一样...
这个是论坛里直接点复制的代码:def Narcissus():
for each in range(100, 1000):
temp = each
sum = 0
while temp:
sum = sum + (temp%10) ** 3
temp = temp // 10 # 注意这里用地板除
if sum == each:
print(each, end='\t')
print("所有的水仙花数分别是:", end='')
Narcissus()
下方的是我自己看着答案手敲的代码:def Narcissus():
for each in range(100, 1000):
temp = each
sum = 0
while temp:
sum = sum + (temp%10) ** 3
temp = temp // 10 #注意这里用地板除
if sum == each:
print(each, end = '\t')
print('所有水仙花数分别是:', end = '')
Narcissus()
运行结果的区别如下:
======= RESTART: C:\Users\aaaaa\bbbbb\Python\Code\daily script.py =======
所有的水仙花数分别是:153 370 371 407
>>>
======= RESTART: C:\Users\aaaaa\bbbbb\Python\Code\daily script.py =======
所有水仙花数分别是:153 370 371 407
我手动敲的代码运行结果里,只有第一个数字和第二个数字中间,没有Tab。为什么?
自己做过的尝试如下:
1.核对两个代码,发现只是多了一些空格,移除空格,结果还是一样;
2.尝试修改代码打印出如下格式:
所有水仙花数分别是:
153 370 371 407
然后重新加入'\t'后,还是一、二数字之间不是Tab。
实在想不明白了。。。
麻烦各位不吝赐教。谢谢!
本帖最后由 sunrise085 于 2020-1-19 16:39 编辑
你理解的是对的。总结的很好。
2和3合并一下,'\t'后面的字符从8的整数倍个字符后开始,且'\t'后的字符前至少有一个空格
另外没必要一个一个数,直接print一串数字就可以了。 def Narcissus():
for each in range(100, 1000):
temp = each
sum = 0
while temp:
sum = sum + (temp%10) ** 3
temp = temp // 10 #注意这里用地板除
if sum == each:
print(each, end = '\t')
print('所有水仙花数分别是:', end = '')
Narcissus()
print()
print('12345678901234567890123456789012345678901234567890')
运行结果:
|