数値の範囲: 1 ~ 100
合計が 100 に等しい 1 から 100までのすべての一意の組み合わせを出力し、最後にそのような組み合わせの数を出力したいと考えています。例:
[1,99]
[1,2,97]
[1,2,3,4,5,85]
したがって、次の 2 つのものが必要です。
- 有効な各組み合わせを出力する
- そのような組み合わせの数の最終カウントを返す
ここに私がこれまでに試したことはありますが、成功していません:
count = 0
def get_count(target, data_range, current_sum):
global count
for num in data_range:
current_sum += num
if current_sum > target:
break
elif current_sum == target:
count += 1
current_sum = 0
elif current_sum < target:
get_count(target, range(num + 1, 101), current_sum)
return count
get_count(target = 100, data_range = range(1,101), current_sum = 0)