最近在准备考研复试的机试题,在看算法笔记这本书的课后习题发现这么一题,要求使用循环求斐波那契数,于是研究了一下。
#include <stdio.h>
int main()
{
int n, i, sum = 0, k = 1, temp = 1;
//输入求第几个数
scanf("%d", &n);
if(n == 1 || n == 2) {
//如果是第一第二个直接输出1
sum = 1;
} else {
for(i = 3; i <= n; i++) {
//取得第i个位置上的斐波那契数的值
sum = k + temp;
//用k保存i-1个斐波那契数
k = temp;
//temp保存第i个斐波那契数
temp = sum;
}
}
printf("%d", sum);
return 0;
}