問題概要
問題ページ
-
A - Large Digits
問題ページへ移動する
問題文
整数 \(n\) に対して、 \(n\) を十進法で表したときの各桁の和を \(S(n)\) で表すことにします。 例えば、\(S(123) = 1 + 2 + 3 = 6\) です。
\(2\) つの \(3\) 桁の整数 \(A, B\) が与えられます。\(S(A)\) と \(S(B)\) のうち大きい方の値を求めてください。
制約
- 入力は全て整数
- \(100 \le A, B \le 999\)
問題の考察
入力の際に数値ではなく文字列として読み込むとコーディングがしやすい。
for
文で各桁の文字列をint
型へキャストして数値の各桁の合計値を求めても良い。
ACコードでは各桁の文字列をint
型へキャストした配列を作成してsum()
で合計値を求めている。
たびすけ
どちらの書き方でも大丈夫だけACコードのような書き方ができるようになると全体的にコードがスッキリするかも!
ACコード
import sys
def solve():
input = sys.stdin.readline
mod = 10 ** 9 + 7
a, b = list(map(str, str(input().rstrip('\n')).split()))
a = sum([int(v) for v in a])
b = sum([int(v) for v in b])
print(max(a, b))
if __name__ == '__main__':
solve()