#include <cstdio> using namespace std; int n,m,len=1; int f[1005][1005]; void plus(int x) { for(int i=1;i<=len;i++) f[x][i]=f[x-1][i]+f[x-2][i]; for(int i=1;i<=len;i++) if(f[x][i]>9) { f[x][i+1]+=f[x][i]/10; f[x][i]%=10; } if(f[x][len+1]) len++; } int main () { scanf("%d%d",&m,&n); f[1][1]=1,f[2][1]=2; for(int i=3;i<=n-m;i++) plus(i); for(int i=len;i;i--) printf("%d",f[n-m][i]); return 0;转python }
时间: 2023-11-23 14:07:44 浏览: 67
c++中的<cstdio>实现
以下是将该段代码转换为 Python 代码:
```python
n, m, length = 1, 1, 1
f = [[0 for i in range(1005)] for j in range(1005)]
f[1][1], f[2][1] = 1, 2
def plus(x):
global length
for i in range(1, length + 1):
f[x][i] = f[x - 1][i] + f[x - 2][i]
for i in range(1, length + 1):
if f[x][i] > 9:
f[x][i + 1] += f[x][i] // 10
f[x][i] %= 10
if f[x][length + 1]:
length += 1
n, m = map(int, input().split())
for i in range(3, n - m + 1):
plus(i)
for i in range(length, 0, -1):
print(f[n - m][i], end="")
```
注意 Python 中没有 C++ 的数组引用传递,所以需要使用 `global` 关键字和 `for` 循环来替代。同时,Python 需要对输入进行解析,所以需要使用 `map` 函数来解析输入。
阅读全文