欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

PAT甲级1024PalindromicNumber

时间:2023-08-20

本题翻译:
题目给出两个数字,一个是N,一个是K,判断N是否为回文数字,如果不是,将N转换成回文数字后加N,再判断是否为回文数字,循环K次,直到看见回文数字为止,如果在K次循环之内没有看见回文数字,则输出循环了K次的数字,其中个位数默认是回文数字。
本题思路:
写两个函数,一个是判断回文函数,一个是将数字转换成回文数字。
注意事项:
本题一直不能通过,有好几个细节问题,最开始一测,只过了几个测试点,后来发现细节很多。
1.个位数是否判断为回文数字。
2.循环次数为0是否能输出。
3.是否确保循环次数和回文次数相等时,能输出。
4.无法凑数成功时,能否输出。
这些细节都注意到之后,测试才能通过。
代码样例:

#判断回文序列def Palindromic(num): num = str(num) k = len(num) for i in num: if i == num[k-1]: k -= 1 else: return False return True#给出回文序列def Pali(num): a = "" num = str(num) for i in range(len(num)-1,-1,-1): a+=num[i] return int(a)m,n = map(int,input().split())store = -1#是否参与循环store1 = -1#是否在最后参与了循环for i in range(n): if Palindromic(m): print(m) store = i if len(str(m))==1: print(i) else: print(i) break else: m = m+Pali(m) store = i store1 = i#无法凑 直接输出if Palindromic(m)==False and store!=-1: print(m) print(n)#确保最后一个数恰好等于循环不到的那个数 输出if len(str(m))!=1 and Palindromic(m)==True and store1+1 == n: print(m) print(n)#确保 循环次数为0能输出if len(str(m))!=1 and store == -1: print(m) print(n)#确保 循环次数为0 且 个位数能输出if len(str(m))==1 and store == -1: print(m) print(n)

如果以上案例没有看懂,测试始终无法通过,可以测试以下几个测试点:67 30 00 169 369 5

如果都能成功,基本测试不会太大的问题,如果还有问题,欢迎私聊哇~

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。