首页 > 试题广场 >

数字反转

[编程题]数字反转
  • 热度指数:9826 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 64M,其他语言128M
  • 算法知识视频讲解
12翻一下是21,34翻一下是43,12+34是46,46翻一下是64,现在又任意两个正整数,问他们两个数反转的和是否等于两个数的和的反转。

输入描述:
每行两个正整数a和b(0<a,b<=10000)。


输出描述:
    如果满足题目的要求输出a+b的值,否则输出NO。
示例1

输入

12 34
99 1

输出

46
NO
def fun1(a):
    arr = []
    while a>0:
        t = a % 10
        a = int(a / 10)
        arr.append(t)
    return arr
def fun2(a):
    n = len(a) - 1
    s = 0
    for i in a:
        s += i*(10**n)
        n -= 1
    return s

def resverse(a ,b):
    arr, brr = [], []
    arrv = fun1(a)
    brrv = fun1(b)
    s1 = fun2(arrv)
    s2 = fun2(brrv)
    s = s1 + s2
    srrv = fun1(a+b)
    sv = fun2(srrv)
    if sv == s:
        print(a+b)
    else:
        print('NO')

while True:
    try:
        a, b = map(int, input().split())
        resverse(a, b)
    except:
        break

编辑于 2024-03-23 12:37:01 回复(0)

问题信息

难度:
1条回答 10715浏览

热门推荐

通过挑战的用户

查看代码
数字反转