c语言用while语句算2/1,3/2,5/3,8/5,13/8,21/13……求这个数列的前20项之和
时间: 2024-11-18 16:19:31 浏览: 22
在C语言中,你可以使用while循环结合递推关系来计算斐波那契数列,然后求和。斐波那契数列是一个典型的递归序列,其中每一项都是前两项的和。然而,直接计算会很慢,因为会有大量的重复计算。一种优化方法是使用动态规划存储已经计算过的项,避免重复。下面是一个简单的C程序示例:
```c
#include <stdio.h>
int fib(int n) {
if (n <= 1)
return n;
int prev = 0, curr = 1, next;
while (n > 1) {
next = prev + curr;
prev = curr;
curr = next;
n--;
}
return curr;
}
int main() {
int sum = 0;
for (int i = 0; i < 20; i++) {
int term = fib(i);
printf("Fibonacci of %d is %d\n", i+1, term);
sum += term;
}
printf("The sum of the first 20 Fibonacci numbers is: %d\n", sum);
return 0;
}
```
在这个程序中,`fib()` 函数用于计算第n项的斐波那契数,然后在主函数中计算并打印前20项以及它们的和。
相关问题
c语言:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13……求这个数列的前20项之和,用while语句
是C语言代码,使用while语句求解分数序列的前20项之和:
```c
#include <stdio.h>
int main() {
double a = 2, b = 1, sum = 0, temp;
int i = 1;
while (i <= 20) {
sum += a / b;
temp = a;
a = a + b;
b = temp;
i++;
}
printf("sum=%16.10f\n", sum);
return 0;
}
```
解释:
首先,我们需要定义变量a、b、sum和temp,分别表示分数序列中的分子、分母、前n项之和和临时变量。
然后,我们使用while循环来计算分数序列的前20项之和。在每次循环中,我们将a/b加到sum中,然后交换a和b的值,使得a变为下一项的分子,b变为下一项的分母。
最后,我们使用printf函数输出结果。
求1+1/3+1/5+……+1/N的和,用C语言while语句编写
```c
#include <stdio.h>
int main() {
int N;
double sum = 0;
printf("请输入N的值:");
scanf("%d", &N);
int i = 1;
while (i <= N) {
sum += 1.0 / i;
i += 2;
}
printf("1+1/3+1/5+...+1/%d=%lf", N, sum);
return 0;
}
```
阅读全文