桁数の和


作成日:2022年1月6日午後5:12

インプリメンテーションコード

# 자릿수의 합
import sys
sys.stdin = open("input.txt", "rt")
n = int(input())
numL = list(map(int, input().split()))
maxIndex = 0
maxSum = 0

def digit_sum(x):
    sum = 0
    for x in str(x):
        sum += int(x)
    return sum

for idx, num in enumerate(numL):
    sum = digit_sum(num)
    if sum > maxSum:
        maxSum = sum
        maxIndex = idx
print(numL[maxIndex])

模範解答

import sys
sys.stdin=open("input.txt", "r")
def digit_sum(x):
    sum=0
    while x>0:
        sum+=x%10
        x=x//10
    return sum

n=int(input())
a=list(map(int, input().split()))
res=0
max=-2147000000
for x in a:
    tot=digit_sum(x)
    if tot>max:
        max=tot
        res=x
print(res)

差異

  • 私が実装したコードで、整数のすべてのビット数の和を求めると、その整数を文字列に変換し、for文に変換し、各ビット数を加えます.
  • 母法解答では、その整数を10の余りで割って加算し、その整数を10のシェアで割ってその整数に変更し、各桁数の和を求める方式である.