求斐波那契数列的第20个数。斐波那契数列是一个数列,第一个数和第二个数为1,其余每个数是前两个数的和
个人思路:先自行遍历几个结果,根据结果看情况
首先我们已知第一个数和第二个数为1
第n个数为前两个数之和
那么我们可以从第三个数开始遍历
第三个数的值用result表示
替换新的第一个数和第二个数
列如:
1
1 ->我们将此数看为要加的第一个数
2 ->此时第四个数为1+2,我们将此数看为要加的第二个数
就有 新的数=第一个数+第二个数
代码如下:
#include <stdio.h>
int main() {
int first, sec, result;
// 初始化前两个数
first = 1;
sec = 1;
// 从第3个数开始计算,到第20个数结束
for (int z = 3; z <= 20; z++) {
result = first + sec; // 计算当前数
first = sec; // 更新前两个数
sec = result; // 更新前两个数
}
// 输出第20个数
printf("%d", result);
return 0;
}
计算斐波那契数列的第20个数。斐波那契数列的定义是:
- 第1个数是1。
- 第2个数是1。
- 从第3个数开始,每个数是前两个数的和。
AI思路步骤
- 初始化前两个数:
- 第1个数 (
first
) 是1。 - 第2个数 (
sec
) 是1。
- 第1个数 (
- 从第3个数开始计算:
- 使用一个循环从第3个数开始,一直计算到第20个数。
- 在每次循环中:
- 计算当前数 (
result
) 为前两个数的和。 - 更新前两个数,将
sec
的值赋给first
,将result
的值赋给sec
。
- 计算当前数 (
- 输出结果:
- 循环结束后,
result
中存储的就是第20个数。
- 循环结束后,
详细步骤
- 初始化变量:
first = 1
:表示数列中的第一个数。sec = 1
:表示数列中的第二个数。result
:用于存储当前计算的数。
- 循环计算:
- 从第3个数开始,到第20个数结束。
- 在每次循环中:
result = first + sec
:计算当前数,即前两个数的和。first = sec
:将sec
的值赋给first
,相当于向前移动一位。sec = result
:将result
的值赋给sec
,也相当于向前移动一位。
- 输出结果:
- 循环结束后,
result
中存储的就是第20个数。 - 使用
printf
输出result
。
- 循环结束后,
总结
需要规范变量名的编写,模糊的变量名在编写过程中可能会导致错乱。