[解答]白俊1024号数列の和
問題の説明
NとLが与えられた場合、最小の連続音符ではなく、少なくともLの整数リストを解くプログラムを作成します.
変数の説明
N
L
temp
x
タイプ:int
データの保存:計算式の保存
解法
入力和の最小長さ[N,L]
for文からLから100を繰り返す
n(i+1)2frac{n-(i*(i+1)}{2}2 N(i+1)値をxxxに保存
xxxがiiiに下がると、xxxをiiiに分割し、値をxxxに再保存します.
xxxが-1より大きい場合はiiiを繰り返し、jjjの値を文字列として保存する[temp]
import sys
N, L = map(int, sys.stdin.readline().split())
for i in range(L, 101): # L은 2보다 크거나 같고, 100보다 작거나 같은 자연수 이기 때문에 100까지만 반복
x = N - (i * (i + 1) / 2)
# x = (N - L * ( L + 1) // 2) // L
temp = ""
if x % i == 0:
x = int(x / i)
if x >= -1:
for j in range(1, i + 1):
temp += f"{x + j} "
print(temp)
break
else:
print(-1)
Reference
この問題について([解答]白俊1024号数列の和), 我々は、より多くの情報をここで見つけました https://velog.io/@soshin_dev/문제-풀이-백준-1024번-수열의-합テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol