斐波那契数列第n项C语言
时间: 2024-01-11 14:19:10 浏览: 86
斐波那契数列是指从第三项开始,每一项都等于前两项之和的数列。斐波那契数列的前几项为0、1、1、2、3、5、8、13、21、34、55、89、144……,其中第0项为0,第1项为1。斐波那契数列第n项的值可以通过递归或循环实现。递归实现的代码比较简洁,但是效率较低,容易出现栈溢出的问题;循环实现的代码效率较高,但是代码相对较长。以下是两种实现方式的代码:
递归实现:
int fib(int n) {
if(n==0)
return 0;
else if(n==1||n==2)
return 1;
else
return (fib(n-1)+fib(n-2));
}
循环实现:
int fib(int n) {
if(n<=1)
return n;
int a=0,b=1,c;
for(int i=2;i<=n;i++) {
c=a+b;
a=b;
b=c;
}
return b;
}
相关问题
输出斐波那契数列前n项c语言
#include <stdio.h>
int main() {
int n, i;
int f1 = 0, f2 = 1, f3;
printf("请输入要输出的斐波那契数列的项数:");
scanf("%d", &n);
printf("斐波那契数列前%d项为:\n", n);
printf("%d %d ", f1, f2);
for (i = 3; i <= n; i++) {
f3 = f1 + f2;
printf("%d ", f3);
f1 = f2;
f2 = f3;
}
return 0;
}
输出斐波那契数列前 n项C语言
在C语言中,你可以通过循环结构来生成并输出斐波那契数列的前n项。斐波那契数列是一个典型的递归序列,其特点是每一项都等于前两项之和。下面是一个简单的C程序示例,展示了如何实现这个功能:
```c
#include <stdio.h>
// 定义一个函数来计算斐波那契数列的第n项
int fibonacci(int n) {
if (n <= 0) return 0;
else if (n == 1) return 1;
else return fibonacci(n - 1) + fibonacci(n - 2);
}
// 主函数,输出斐波那契数列的前n项
void print_fibonacci(int n) {
int i, fib;
printf("斐波那契数列的前 %d 项:\n", n);
for (i = 1; i <= n; ++i) {
fib = fibonacci(i);
printf("%d ", fib); // 输出当前项
}
printf("\n");
}
int main() {
int n; // 用户输入项数
printf("请输入想要打印的斐波那契数列项数(n >= 1):");
scanf("%d", &n);
// 检查输入是否合法
if (n < 1) {
printf("错误:项数必须大于0。\n");
} else {
print_fibonacci(n);
}
return 0;
}
```
阅读全文