ZBLOG

用递归算法找出 5 个自然数中取 3 个数的组合。 编程要求 请在右侧编辑器Begin-End处补充代码,完成本关任务。 测试说明 平台会对你编写的代码进行测试,比对你输出的数值与实际正确数值,只有所有数据全部计算正确才能通过测试: 测试输入:5 3 (n=5,r=3;,表示从1,2,3,4,5自然数中选择 3 个数) 预期输出: 5 4 3 5 4 2 5 4 1 5 3 2 5 3 1 5 2 1 4 3 2 4 3 1 4 2 1 3 2 1 #include

def combrecur(n, r, combination=[]):
    # 递归终止条件:已经选择了 r 个数
    if len(combination) == r:
        print(' '.join(map(str, combination)))
        return
    
    # 递归遍历从 n 到 1 的数,进行组合选择
    for i in range(n, 0, -1):
        combrecur(i - 1, r, combination + [i])

def main():
    n = 5   # 自然数范围
    r = 3   # 取出的数字个数

    combrecur(n, r)

if __name__ == "__main__":
    main()

以上代码使用递归算法找出指定数量的自然数组合。在每一层递归中,我们从当前的 n 开始,将其加入组合列表中,并递归调用下一层,在下一层中选择更小的数字。当组合列表长度等于所需数量 r 时,输出该组合。不断地迭代和回溯,直到遍历完所有可能的组合。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=11654

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?