|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
1. 判断一个整数是否为回文数。
科普:
回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
- num = int(input('请输入一个正整数:'))
- temp = 0
- temp = num
- a = num % 10
- reverse = 0
- if num >= 0:
- guess = num
- sum = 1
- while guess > 9:
- guess //= 10
- sum += 1
-
- while temp > 0:
- b = num % 10
- temp //= 10
- reverse += b*pow(10,sum - 1)
- sum -= 1
- if num == reverse:
- print('是回文数。')
- else:
- print('不是回文数。')
- else:
- print('不是回文数。')
复制代码
你的代码逻辑是正确的,但是存在一个小问题,那就是你在计算reverse时使用的整数是 num ,而不是你原本应该使用的 temp 。因为在每次循环时, num 都保持不变,而 temp 才是你在不断缩小的数。应当在每次循环时计算 temp 的最后一个数字,而不是 num 的。因此,你的代码应该修改为:
- num = int(input('请输入一个正整数:'))
- temp = num
- reverse = 0
- if num >= 0:
- guess = num
- sum = 1
- while guess > 9:
- guess //= 10
- sum += 1
-
- while temp > 0:
- b = temp % 10 # 这里应该是 temp 而不是 num
- temp //= 10
- reverse += b*pow(10,sum - 1)
- sum -= 1
-
- if num == reverse:
- print('是回文数。')
- else:
- print('不是回文数。')
- else:
- print('不是回文数。')
复制代码
在这段修正后的代码中,我们首先输入一个正整数,然后复制这个数到 temp 中,然后如果这个数大于等于0,我们就用 guess 来缩小这个数,并同时计算这个数的位数 sum ,然后我们在循环中,计算 temp 的最后一个数字,然后缩小 temp ,并将这个最后一个数字加入到 reverse 中,最后我们判断 num 和 reverse 是否相等,如果相等则是回文数,否则不是回文数。如果输入的数小于0,则直接输出不是回文数。
|
|