测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

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 分)

上一题 下一题