C言語でフィボナッチ数列を生成するにはどうすればよいですか?
C言語では再帰とループの、二通りの手法でフィボナッチ数列を実現できます。
- 再帰的手法:
#include <stdio.h>
int fibonacci(int n) {
if (n == 0 || n == 1) {
return n;
} else {
return fibonacci(n-1) + fibonacci(n-2);
}
}
int main() {
int n;
printf("请输入要计算的斐波那契数列项数:");
scanf("%d", &n);
printf("斐波那契数列的第%d项是:%d\n", n, fibonacci(n));
return 0;
}
- サイクル法
#include <stdio.h>
int fibonacci(int n) {
if (n == 0 || n == 1) {
return n;
} else {
int a = 0, b = 1, i, fib;
for (i = 2; i <= n; i++) {
fib = a + b;
a = b;
b = fib;
}
return b;
}
}
int main() {
int n;
printf("请输入要计算的斐波那契数列项数:");
scanf("%d", &n);
printf("斐波那契数列的第%d项是:%d\n", n, fibonacci(n));
return 0;
}