|
|
(第0题)
for i in range(1,10):
for j in range(10):
for k in range(10):
if i**3 + j**3 + k**3 == i*100 + j*10 + k:
print(i*100 + j*10 + k)
ps:简单易懂,没啥技术含量,但当时只想到了这一种qwq
第0题代码正确,能够找出所有三位数的水仙花数(例如153、370、371、407)。虽然使用了三层循环,但思路清晰,非常适合初学者理解。
(第1题)
n = input('请输入一个整数:')
zishu = len(n)
print(zishu)#字符串长度
for i in range(zishu):
if n != n :
print(n,'不是是一个回文数')
break
else:
print(n,'是一个回文数')
第1题代码中,判断条件 n != n 永远为假,因此循环不会中断,最终总是执行else分支,导致无论输入什么都会输出是回文数。这里需要比较字符串的正序和反序是否相等,或者比较对称位置的字符。
以下是两种常用的正确解法:
方法一:字符串反转比较(简洁)
- n = input('请输入一个整数:')
- if n == n[::-1]:
- print(n, '是一个回文数')
- else:
- print(n, '不是一个回文数')
复制代码
方法二:循环比较首尾字符(避免使用切片)
- n = input('请输入一个整数:')
- length = len(n)
- is_palindrome = True
- for i in range(length // 2):
- if n[i] != n[length - 1 - i]:
- is_palindrome = False
- break
- if is_palindrome:
- print(n, '是一个回文数')
- else:
- print(n, '不是一个回文数')
复制代码
两种方法都可以正确判断回文数,你可以根据已学知识选择使用。继续努力,你会越来越熟练的!
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |
|