斐波那契数列(Fibonacci Sequence),又称黄金分割数列,指的是这样一个数列:1、1、2、3、5、8、13、21、……。在数学上,斐波纳契数列以递推的方法定义为:F(1)=1,F(2)=1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N)。计算斐波那契数列第n项的值。 输入格式: 输入一个大于等于1,小于等于60的整数n。 输出格式: 输出第n项的数列值,数列值为double类型,不输出小数位数。 输入样例: 20 输出样例: 6765 输入样例: 1 输出样例: 1
时间: 2024-02-18 08:06:13 浏览: 136
好的,我来为你编写一个计算斐波那契数列第n项的程序。
代码如下:
```c
#include <stdio.h>
double fib(int n) {
if(n == 1 || n == 2) {
return 1;
}
double f1 = 1, f2 = 1, f3;
for(int i = 3; i <= n; i++) {
f3 = f1 + f2;
f1 = f2;
f2 = f3;
}
return f3;
}
int main() {
int n;
scanf("%d", &n);
double res = fib(n);
printf("%.0f", res); // 不输出小数位数
return 0;
}
```
在这段代码中,我们通过递推的方式计算斐波那契数列的第n项。具体来说,我们定义了一个 `fib` 函数,该函数接受一个整数 `n` 作为参数,返回斐波那契数列的第n项的值。
在 `fib` 函数内部,我们定义了三个变量 `f1`、`f2` 和 `f3`,分别表示斐波那契数列中的第i-2项、第i-1项和第i项。我们首先将 `f1` 和 `f2` 初始化为1,然后从第3项开始,通过递推公式 `f3 = f1 + f2` 来求解斐波那契数列的第i项,同时更新 `f1` 和 `f2` 的值。
在 `main` 函数中,我们通过 `scanf` 函数读入一个整数 `n`,表示要计算斐波那契数列的第n项。然后,我们调用 `fib` 函数来求解第n项的值,并将其输出,注意不输出小数位数,因此使用了 `%.0f` 的格式化字符串。
运行该程序,输入20,输出如下:
```
6765
```
这表示斐波那契数列的第20项的值为6765。
阅读全文