小编Ami*_*hah的帖子

将for循环和if语句的递归函数转换为迭代函数

挑战是找到所有可能的小于N的数字组合,其总和等于N.例如,当N等于:

  • 2
    • 1 + 1 - 1路
  • 3
    • 2 + 1
    • 1 + 1 + 1 - 2种方式
  • 4
    • 3 + 1
    • 2 + 2
    • 2 + 1 + 1
    • 1 + 1 + 1 + 1 - 4种方式

等等...

现在在python中创建它,以了解我起草此代码的模式第一:

N=5
for d in drange(0,N,1):
    if N-d*4>=0:
        for c in drange(0,N,1):
            if N-d*4-c*3>=0:
                for b in drange(0,N,1):
                    if N-d*4-c*3-b*2>=0:
                        for a in drange(0,N,1):
                            if N-d*4-c*3-b*2-a*1==0:
                                if sum([d,c,b,a])!=1:
                                    print d,c,b,a                            
                    else: break
            else:break
    else:break
Run Code Online (Sandbox Code Playgroud)
  1. 然后我将代码更改为此处,其中N = 6及以下:
N=6
for e …
Run Code Online (Sandbox Code Playgroud)

python iteration recursion for-loop if-statement

2
推荐指数
1
解决办法
251
查看次数

标签 统计

for-loop ×1

if-statement ×1

iteration ×1

python ×1

recursion ×1