PAT1 1024 Palindromic Number

题目链接
我的github

题目大意

一个数如果从前往后和从后往前看是一样的,那么这个数就是回文数。
现在给数 N N N( ≤ 1 0 10 \leq 10^{10} 1010)和 K K K( ≤ 100 \leq 100 100),分别表示初始的数和最大的变换步数,求 N N N K K K次变换内能否变成回文数。变换是指将 N N N逆序后得到数 M M M,然后 N + = M N+=M N+=M

输入

每组包含一个测试用例,每个用例为一行有两个正整数 N N N K K K

输出

对每个例子输出两行,第一行输出 N N N K K K次变换内所得的最小回文数,如果不能得到回文数,就输出 N N N变换 K K K次得到的数,第二行输出 N N N K K K次变换内最少需要多少次变成回文数,如果不能变成回文数,就输出 K K K

样例输入

67 3

69 3

样例输出

484
2

1353
3

解析

这题原本要考大整数的加法,但是python就没那么麻烦,直接相加然后判断即可

def check(s):   #判断回文
    if s == s[::-1]:
        return True
    else:
        return False


def solve():
    n, k = map(int, input().split())
    cnt = 0
    for i in range(k):
        if check(str(n)):
            break
        n = n + int(str(n)[::-1])
        cnt += 1
    print(n)
    print(cnt)


if __name__ == "__main__":
    solve()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值