【发布时间】:2013-08-05 18:57:01
【问题描述】:
数字范围是:1 到 100
我希望打印出介于 1 和 100 之间且总和等于 100 的每个 唯一 组合,最后是此类组合的计数 例如:
[1,99]
[1,2,97]
[1,2,3,4,5,85]
所以,我需要两件事:
- 打印每个有效组合
- 返回此类组合数的最终计数
这是我迄今为止尝试过的,但没有成功:
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)
【问题讨论】:
-
我同意这是一个完全的骗局。它可以简化为链接的问题,但在这里 - 你有一个额外的限制。给定的数字集是 [1,2,..,100] - 而不是任意集合。