用c语言写一个 ,递推求斐波那契数列(高精度)用高精度加法
时间: 2024-05-11 07:15:04 浏览: 102
来实现。
很高兴回答您的问题!以下是C语言代码,使用了高精度加法来实现递推求解斐波那契数列:
```c
#include <stdio.h>
#include <string.h>
void add(char *a, char *b) // 高精度加法
{
int carry = 0;
int len1 = strlen(a);
int len2 = strlen(b);
for (int i = len1 - 1, j = len2 - 1; i >= 0 || j >= 0 || carry > 0; i--, j--)
{
int num1 = i >= 0 ? a[i] - '0' : 0;
int num2 = j >= 0 ? b[j] - '0' : 0;
int sum = num1 + num2 + carry;
carry = sum / 10;
sum %= 10;
a[i] = sum + '0';
}
}
void fib(int n) // 递推求解斐波那契数列
{
char a[1000] = { '1' };
char b[1000] = { '1' };
for (int i = 3; i <= n; i++)
{
add(a, b);
strcpy(b, a);
}
printf("%s\n", a);
}
int main()
{
int n;
scanf("%d", &n);
fib(n);
return 0;
}
```
希望能帮助到您!若有其它问题,请随时提出。
阅读全文