这题很重要,尽量不要用递归
#include <stdio.h>
void main() {
int k, sum, i;
int sum1 = 1;
int sum2 = 1;
sum = 2;;
scanf("%d", &k);
if (k == 1||k==2) {
sum = 1;
}
else if (k <= 46) {
for (i = 3; i <= k; i++) {
sum = sum1 + sum2;//这三句是精华,相当于把一二位置移到二三位置,这种方法非常重要
sum1 = sum2;
sum2 = sum;
}
}printf("%d", sum);
}