首页 > 试题广场 >

数字之和

[编程题]数字之和
  • 热度指数:7147 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 64M,其他语言128M
  • 算法知识视频讲解
对于给定的正整数 n,计算其十进制形式下所有位置数字之和,并计算其平方的各位数字之和。

输入描述:
每行输入数据包括一个正整数n(0<n<40000)


输出描述:
对于每个输入数据,计算其各位数字之和,以及其平方值的数字之和,输出在一行中,之间用一个空格分隔,但行末不要有空格。
示例1

输入

4
12
97
39999

输出

4 7
3 9
16 22
39 36
while True:
    try:
        n=int(input().strip())
        def sum1(n):
            n_bin=list(str(n))
            n_bin=map(int,n_bin)
            return sum(n_bin)
        def sum2(n):
            squ=list(str(n**2))
            squ=map(int,squ)
            return sum(squ)
        re1=sum1(n)
        #print(re1)
        re2=sum2(n)
        print(str(re1)+' '+str(re2))
    except:
        break
发表于 2019-07-29 13:49:18 回复(0)
def DigitalRoots3():
    inputData = int(input())
    powData = inputData * inputData
    result1= sum(int(i) for i in str(inputData) if i.isdigit())
    result2= sum(int(i) for i in str(powData) if i.isdigit())
    print(result1,result2)
DigitalRoots3()

发表于 2018-07-31 13:31:59 回复(0)

python solution:


while True:
    try:
        a=input()
        if a!="0":
            print(str(sum(map(int,list(a))))+" "+str(sum(map(int,list(str(int(a)**2))))))
    except:
        break
发表于 2017-10-03 19:53:21 回复(0)
try:
    while 1:
        n = input()
        if n == 0:
            break
        else:
            print sum(map(int, str(n))), sum(map(int, str(n ** 2)))
except:
    pass

发表于 2016-12-26 12:21:13 回复(0)