编写程序求数列2/1,-3/2,5/3,-8/5,13/8,-21/13...的前n项和,n从键盘...

发布网友 发布时间:2024-10-23 19:43

我来回答

2个回答

热心网友 时间:2024-10-26 09:37

代码如下, 可多次计算求和.
输入非正整数时,程序结束.

/*
求和
a(1)=1, b(1)=2,
c(n)=b(n)/a(n), a(n+1)=b(n), b(n+1)=a(n)+b(n),
sum = sum_{k=1->n}(-1)^(k-1)c(k)
*/

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

void main()
{

int n;
char cn[200];
double fn;

do
{
// 输入和项数目 n
printf("\n请输入和项数目, (输入非正整数将使程序结束)\n");
scanf("%s", cn);

fn = atof( cn );

n = int( fn );
if( ( n <= 0 ) || ( fn != n ) )
{
printf("和项数目为非正整数,程序结束!\n");
break;
}

// c(n)=b(n)/a(n), a(n+1)=b(n), b(n+1)=a(n)+b(n),
// sum = sum_{k=1->n}(-1)^(k-1)c(k)
float c, a=1, b=2;
float x,sum=0;
int i, nsgn = 1;

// 开始求和
for(i=1; i<=n; i++)
{
c = b/a;
c = nsgn*c;
sum = c + sum;

x = a + b;
a = b;
b = x;
nsgn = (-1)*nsgn;
}

// 输出和
printf("前%d项的和为 %.18f\n",n, sum);

}while(n);

return;
}

热心网友 时间:2024-10-26 09:34

C程序源代码如下
#include <stdio.h>
#include <iostream.h>
void main()
{
float n,c,a=1,b=2;
float x,sum=0;
for(n=1;n<21;n++)
{
x=b/a;
sum=x+sum;
c=a;
a=b;
b=a+c;
}
printf("The answer is %f",sum);
}
结果:32.660259

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com