用C语言的循环语句求解斐波那契数列的前40项
时间: 2023-11-18 18:57:55 浏览: 35
```c
#include <stdio.h>
int main() {
int n = 40;
int fib1 = 0, fib2 = 1;
printf("%d %d ", fib1, fib2);
for(int i = 3; i <= n; i++) {
int fib3 = fib1 + fib2;
printf("%d ", fib3);
fib1 = fib2;
fib2 = fib3;
}
return 0;
}
```
相关问题
用C语言队列法求斐波那契数列前20项
好的,以下是使用C语言队列法求解斐波那契数列前20项的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX 20
typedef struct queue {
int data[MAX];
int head;
int tail;
} Queue;
void init(Queue* q)
{
q->head = 0;
q->tail = 0;
}
int empty(Queue* q)
{
return q->head == q->tail;
}
int full(Queue* q)
{
return (q->tail + 1) % MAX == q->head;
}
void push(Queue* q, int x)
{
if (full(q))
{
printf("Queue is full!\n");
return;
}
q->data[q->tail] = x;
q->tail = (q->tail + 1) % MAX;
}
int pop(Queue* q)
{
if (empty(q))
{
printf("Queue is empty!\n");
return -1;
}
int x = q->data[q->head];
q->head = (q->head + 1) % MAX;
return x;
}
int main()
{
Queue q;
init(&q);
int a = 0, b = 1;
push(&q, a);
push(&q, b);
for (int i = 2; i < MAX; i++)
{
int c = a + b;
push(&q, c);
a = b;
b = c;
}
while (!empty(&q))
{
printf("%d ", pop(&q));
}
return 0;
}
```
在上面的代码中,我们使用一个定长循环队列来存储斐波那契数列的前两项,然后依次计算后面的项并将它们加入队列中。最后,我们输出队列中的前20项即可。
c语言用数组求斐波那契数列前20项
好的,以下是使用数组求解斐波那契数列前20项的 C 代码:
```c
#include <stdio.h>
#define N 20
int main()
{
int fib[N] = {0, 1}; // 初始化前两项
int i;
// 计算前20项
for (i = 2; i < N; i++) {
fib[i] = fib[i-1] + fib[i-2];
}
// 输出结果
printf("斐波那契数列前20项为:\n");
for (i = 0; i < N; i++) {
printf("%d ", fib[i]);
}
printf("\n");
return 0;
}
```
运行结果如下:
```
斐波那契数列前20项为:
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181
```