用C语言编程,输入5个正整数判断这5个数是否构成费波拉契数列假设输入的5个数是升序输入的, 第一行是一个正整数N,后面是N组5个数的序列 如果是满足费波拉契数列的条件则输出YES,否则输出NO.
时间: 2023-05-29 17:03:16 浏览: 42
```c
#include <stdio.h>
int main()
{
int n;
scanf("%d", &n);
while (n--)
{
int a[5];
for (int i = 0; i < 5; i++)
{
scanf("%d", &a[i]);
}
if (a[0] != 1 || a[1] != 2)
{
printf("NO\n");
continue;
}
int flag = 1;
for (int i = 2; i < 5; i++)
{
if (a[i] != a[i - 1] + a[i - 2])
{
flag = 0;
break;
}
}
if (flag)
{
printf("YES\n");
}
else
{
printf("NO\n");
}
}
return 0;
}
```
相关问题
用C语言输入5个正整数,判断这5个数是否构成费波拉契数列(前2个数给定后,后面的数都是前两个之和)。假设输入的5个数是升序输入的(即后面输入的一定比前面的数大)。 输入 第一行是一个正整数N。后面是N组5个数的序列。 输出 如果是满足费波拉契数列的条件则输出YES,否则输出NO.
示例输入
2
1 1 2 3 5
1 2 3 5 8
示例输出
YES
NO
提示
对于样例#1, 前两个数是1和1,后面的数都是前两个数之和,即2=1+1,3=1+2,5=2+3,因此构成费波拉契数列。 对于样例#2,虽然后面的数也是前两个数之和,但是前两个数不是1和1,因此不构成费波拉契数列。
用c语言编写程序 利用指针设计求费波那契数列求前 20 项和的函数。
好的,我可以回答你的问题。下面是一种用指针设计求费波那契数列前 20 项和的 c 语言程序:
```c
#include <stdio.h>
void fibonacci(int num, int* fib)
{
fib[0] = 0;
fib[1] = 1;
for (int i = 2; i < num; i++)
{
fib[i] = fib[i-1] + fib[i-2];
}
}
int fibonacci_sum(int num)
{
int fib[num];
fibonacci(num, fib);
int sum = 0;
for (int i = 0; i < num; i++)
{
sum += fib[i];
}
return sum;
}
int main()
{
int num = 20;
int sum = fibonacci_sum(num);
printf("The sum of the first %d Fibonacci numbers is: %d\n", num, sum);
return 0;
}
```
我们定义了两个函数:`fibonacci()` 用来计算前 num 个费波那契数列,存储在一个名为 fib 的数组中;`fibonacci_sum()` 用来计算前 num 个费波那契数列的总和。最后,在程序中调用 `fibonacci_sum()` 函数并打印结果。
希望能够帮到你!