A50005. 要求: 设计一个算法, 如果一个数从左边读和从右边读都是同一个数, 就称为回文数。例如 9889 就是一个回文数, 求对于用户输入的一个非零正整数判断是否为回文数。根据上述算法思想, 补全下列代码。示例: 输入 9889, 返回 9889 是回文数; 输入 34542, 返回 34542 不是回文数。i=input("请输入一个非零正整数:")n=len(i)if ① : for j in ra…
填空题
中等
知识点
题目描述
要求: 设计一个算法, 如果一个数从左边读和从右边读都是同一个数, 就称为回文数。
例如 9889 就是一个回文数, 求对于用户输入的一个非零正整数判断是否为回文数。
根据上述算法思想, 补全下列代码。
示例: 输入 9889, 返回 9889 是回文数; 输入 34542, 返回 34542 不是回文数。
i=input("请输入一个非零正整数:")
n=len(i)
if ① :
for j in range(int((n+1)/2)):
if ② :
if n==2*j+1:
print("{}是回文数".format(i))
else:
print("{}不是回文数".format(i))
break
else:
for j in ③ :
if i[j]==i[n-j-1]:
if ④ :
print("{}是回文数".format(i))
else:
print("{}不是回文数".format(i))
break
参考答案
i=input("请输入一个非零正整数:")
n=len(i)
if n%2!=0:
for j in range(int((n+1)/2)):
if i[j]==i[n-j-1]:
if n==2*j+1:
print("{}是回文数".format(i))
else:
print("{}不是回文数".format(i))
break
else:
for j in range(int(n/2)):
if i[j]==i[n-j-1]:
if n==2*(j+1):
print("{}是回文数".format(i))
else:
print("{}不是回文数".format(i))
break答案解析
参考答案:
① n%2!=0: 或等效答案;(3 分)
② i[j]==i[n-j-1]: 或等效答案;(3 分)
③ range(int(n/2)) 或等效答案;(2 分)
④ n==2*(j+1) 或等效答案;(2 分)
上一题
下一题