#include<stdio.h> int fib(int n) { if(n==1||n==2)//通过数列的规律发现,前两项都为1,作为递归的终止条件 { return 1; } else { return fib(n-1)+fib(n-2);//要求第n项,就是求n-1项和n-2项的和 } } int main() { int n; for(n=1;;n++){ if(fib(n)<=5000) printf("%6d",fib(n)); } return 0; }转化为Python语言
时间: 2023-11-28 18:50:32 浏览: 45
```python
def fib(n):
if n == 1 or n == 2:
return 1
else:
return fib(n-1) + fib(n-2)
n = 1
while True:
if fib(n) <= 5000:
print("{:6}".format(fib(n)), end="")
n += 1
else:
break
```
注意:Python中的循环不需要指定循环变量的类型,因此在这里不需要指定 `n` 的类型。另外,Python中的循环可以用 `while True:` 实现无限循环。在这里,我们在循环内部加上 `break` 语句来跳出循环。字符串格式化可以使用 `{}` 和 `.format()` 函数,这里用它来实现输出格式的对齐。