#include <stdio.h>
int main() {
int a = 1, b = 1;
int c = 0;
printf("%d\n", a);
printf("%d\n", b);
for (int i = 3; i <= 40; i++) {
c = a + b;
a = b;
b = c;
printf("%d\n", c);
}
return 0;
}
使用数组(以输出斐波那契数列前40项为例)
#include <stdio.h>
int main() {
int arr[40] = { 1,1 };
for (int i = 2; i < sizeof(arr) / sizeof(arr[0]); i++) {
arr[i] = arr[i - 2] + arr[i - 1];
}
for (int j = 0; j < sizeof(arr) / sizeof(arr[0]); j++) {
printf("%d\n", arr[j]);
}
return 0;
}
使用递归(以输出斐波那契数列前40项为例)
#include <stdio.h>
int main() {
int fib(int i);
for (int i = 1; i <= 40; i++) {
printf("%d\n", fib(i));
}
return 0;
}
int fib(int i) {
if (i == 1) {
return 1;
}
else if (i == 2) {
return 1;
}
else {
return fib(i - 1) + fib(i - 2);
}
}