编写一个名为collatz()的函数,它有一个名为number的参数。如果参数是偶数,那么collatz()就打印出number//2,并返回该值。如果number是奇数,collatz()就打印并返回3*number+1。然后编写一个程序,让用户输入一个整数,并不断对这个数调用collatz(),直到函数返回值1
错误解答:
点击(此处)折叠或打开
-
def collatz(number):
-
#global number
-
if number==1:
-
number=1
-
return number
-
elif number%2==0:
-
number=number//2
-
print(number)
-
collatz(number)
-
else:
-
number=3*number+1
-
print(number)
-
collatz(number)
-
-
-
print('Please enter a number what you want:')
-
while True:
-
try:
-
number=int(input())
-
number=collatz(number)
-
print(number)
-
if number==1:
-
break
-
except ValueError:
- print('You must enter a integer')
正确解答:
点击(此处)折叠或打开
-
def collatz(number):
-
if number==1:
-
number=1
-
return number
-
elif number%2==0:
-
number=number//2
-
print(number)
-
return collatz(number)
-
else:
-
number=3*number+1
-
print(number)
-
return collatz(number)
-
-
-
print('Please enter a number what you want:')
-
while True:
-
try:
-
number=int(input())
-
number=collatz(number)
-
print('Not in function: %d' % number)
-
if number==1:
-
break
-
except ValueError:
- print('You must enter a integer')
要正确理解递归的概念。