Python|桁数の和
桁数の和
1.質問🧐
N個の自然数を入力すると,自然数毎の桁数の和を求め,プログラム出力最大の自然数を記述する.自然数桁ごとの和を求める関数をプログラミングするにはdef digit sum(x)を記述しなければならない.
2.入力
1行目は自然数の個数N(3<=N<=100)を与え、2行目はN個の自然数を与える.各自然数の大きさは1000000を超えない.
3
125 15232 97
3.出力
出力ビット数の和の最大自然数.数字の桁数の和が同じであれば、まず入力順に出力される数字です.
97
4.問題を解くポイント🔍
def digit_sum(x):
sum = 0
while x > 0:
sum += x % 10
x = x // 10
return sum
この部分はコアポイントです.xのシェアが0に近づく前に、xを10で割って残りの値をsumに加算すると、桁数の和が得られます.
5.コード💻
1)私の解答1-関数x
import sys
sys.stdin=open("input.txt","r")
N = int(input())
num = list(map(int, input().split()))
print(num)
# 1단계 : 예를 들어 125를 1,2,5로 분리하기
str_list = []
for n in num:
str_list.append(list(str(n)))
print(str_list)
# 2단계 : 각 자리수 문자열을 int타입으로 만들어서
# 더한 값을 다시 sum_list에 넣어주기
sum_list=[]
sum = 0
for num_list in str_list:
sum = 0
for n in num_list:
sum += int(n)
sum_list.append(sum)
# print(num)
print(sum_list)
# 3단계 : 자릿수의 합 중에 최대값 구하기
max = 0 #최대값 구할 변수
midx = 0
for idx, i in enumerate(sum_list):
if i > max:
max=i
midx=idx
print(num[midx])
2)私の解答2-関数o
import sys
sys.stdin=open("input.txt","r")
N = int(input())
num = list(map(int, input().split()))
# print(num)
str_list = []
sum_list=[]
def digit_sum(x):
sum = 0
for num_list in str_list:
sum = 0
for n in num_list:
sum += int(n)
sum_list.append(sum)
for n in num:
str_list.append(list(str(n)))
digit_sum(n)
# print(str_list)
# print(num)
# print(sum_list)
max = 0
midx = 0
for idx, i in enumerate(sum_list):
if i > max:
max=i
midx=idx
print(num[midx])
3)模範解答
n = int(input())
a = list(map(int, input().split()))
def digit_sum(x):
sum = 0
while x > 0:
sum += x % 10
x = x // 10
return sum
for x in a:
ja = digit_sum(x)
if ja > max:
max = ja
res = x
print(res)
韓国情報
Reference
この問題について(Python|桁数の和), 我々は、より多くの情報をここで見つけました
https://velog.io/@ggg5483/Python-자릿수의-합
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
def digit_sum(x):
sum = 0
while x > 0:
sum += x % 10
x = x // 10
return sum
import sys
sys.stdin=open("input.txt","r")
N = int(input())
num = list(map(int, input().split()))
print(num)
# 1단계 : 예를 들어 125를 1,2,5로 분리하기
str_list = []
for n in num:
str_list.append(list(str(n)))
print(str_list)
# 2단계 : 각 자리수 문자열을 int타입으로 만들어서
# 더한 값을 다시 sum_list에 넣어주기
sum_list=[]
sum = 0
for num_list in str_list:
sum = 0
for n in num_list:
sum += int(n)
sum_list.append(sum)
# print(num)
print(sum_list)
# 3단계 : 자릿수의 합 중에 최대값 구하기
max = 0 #최대값 구할 변수
midx = 0
for idx, i in enumerate(sum_list):
if i > max:
max=i
midx=idx
print(num[midx])
import sys
sys.stdin=open("input.txt","r")
N = int(input())
num = list(map(int, input().split()))
# print(num)
str_list = []
sum_list=[]
def digit_sum(x):
sum = 0
for num_list in str_list:
sum = 0
for n in num_list:
sum += int(n)
sum_list.append(sum)
for n in num:
str_list.append(list(str(n)))
digit_sum(n)
# print(str_list)
# print(num)
# print(sum_list)
max = 0
midx = 0
for idx, i in enumerate(sum_list):
if i > max:
max=i
midx=idx
print(num[midx])
n = int(input())
a = list(map(int, input().split()))
def digit_sum(x):
sum = 0
while x > 0:
sum += x % 10
x = x // 10
return sum
for x in a:
ja = digit_sum(x)
if ja > max:
max = ja
res = x
print(res)
Reference
この問題について(Python|桁数の和), 我々は、より多くの情報をここで見つけました https://velog.io/@ggg5483/Python-자릿수의-합テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol