白駿2231号:分解和(python)
コード#コード# N = int(input())
if(N>100):
t = N-100 #N보다 100 작은 숫자부터 시작
brr = []
for i in range(t,N):
ii = i
k = len(str(i))
arr=[]
a=0
for j in range(k):
a = i%10
arr.append(a)
i= i//10
brr.append((sum(arr)+ii))
if((sum(arr)+ii)==N):
print(ii)
break
if(brr.count(N)==0):
print(0)
else:
brr = []
for i in range(N):
ii = i
k = len(str(i))
arr=[]
a=0
for j in range(k):
a = i%10
arr.append(a)
i= i//10
brr.append((sum(arr)+ii))
if((sum(arr)+ii)==N):
print(ii)
break
if(brr.count(N)==0):
print(0)
コードは他の問題より長いです.解きやすい方法が見つからないので、長く書いてあります.ううう
まず,生成者の特性は与えられた数字と大きく異なるため,範囲は100程度に制限される.与えられた数100より小さい数から、各ビット数とその和を計算し、与えられた数と同じ場合には、出力でコードを記述する.次のelseが100以下の数字の場合.
Reference
この問題について(白駿2231号:分解和(python)), 我々は、より多くの情報をここで見つけました
https://velog.io/@gogod/백준-2231번-분해합python
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
N = int(input())
if(N>100):
t = N-100 #N보다 100 작은 숫자부터 시작
brr = []
for i in range(t,N):
ii = i
k = len(str(i))
arr=[]
a=0
for j in range(k):
a = i%10
arr.append(a)
i= i//10
brr.append((sum(arr)+ii))
if((sum(arr)+ii)==N):
print(ii)
break
if(brr.count(N)==0):
print(0)
else:
brr = []
for i in range(N):
ii = i
k = len(str(i))
arr=[]
a=0
for j in range(k):
a = i%10
arr.append(a)
i= i//10
brr.append((sum(arr)+ii))
if((sum(arr)+ii)==N):
print(ii)
break
if(brr.count(N)==0):
print(0)
Reference
この問題について(白駿2231号:分解和(python)), 我々は、より多くの情報をここで見つけました https://velog.io/@gogod/백준-2231번-분해합pythonテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol