Recursion 是否可以将函数定义为其本身?
我理解这行代码有困难。如果您熟悉collatz函数,下面是它的简要说明 是否可以将代码定义为自身 上下文:collatz猜想适用于正整数,并推测如果您遵循以下步骤,则有可能返回到1: 如果n为1,则停止 如果n为偶数,则在n/2上重复此过程 如果n为奇数,则在3n+1上重复此过程 例如,如果n为3: 3-->10-->5-->16-->8-->4-->2-->(所需步骤数:1) 如果从1开始并以abvove形式递归,则编写一个函数来标识达到1所需的步骤数 在下面的代码行中,特别是计算将偶数减少到1所需的步骤数。如果(n%2)==0,我指的是else 返回1+collatz(n/2) 当你几乎没有定义一个函数时,你怎么能使用它呢?(即科拉茨) 我用了一个while循环来检查当我们降到1的时候 当你几乎没有定义一个函数时,你怎么能使用它呢 在第一行中定义了编写函数调用所需的所有内容:Recursion 是否可以将函数定义为其本身?,recursion,cs50,Recursion,Cs50,我理解这行代码有困难。如果您熟悉collatz函数,下面是它的简要说明 是否可以将代码定义为自身 上下文:collatz猜想适用于正整数,并推测如果您遵循以下步骤,则有可能返回到1: 如果n为1,则停止 如果n为偶数,则在n/2上重复此过程 如果n为奇数,则在3n+1上重复此过程 例如,如果n为3: 3-->10-->5-->16-->8-->4-->2-->(所需步骤数:1) 如果从1开始并以abvove形式递归,则编写一个函数来标识达到1所需的步骤数 在下面的代码行中,特别是计算将偶数减少到
int collatz(int n)
因此,在collatz()
内部,即使您还没有完成编写,也可以使用int
参数调用collatz()
,并期望得到int
结果
我们不能做的是在定义完函数之前运行它
def collatz(x):
print(x)
i = 1
while x != 1:
if (x % 2) == 0:
x = x/2
print(x)
i += 1
else:
x = 3*x +1
print(x)
i +=1
print("Steps:", i)
int collatz(int n)