c语言:求前n项和;n由键盘输入;s=1/2-2/3+3/5-5/8+8/13...

速求

#include<stdio.h>
#include<math.h>
void main()
{
double sum=0,t=1,s=2,b;
int i=1,n;
scanf("%d",&n);
while(i<=n)
{
sum+=pow(-1.0,i+1)*t/s;//正负在此设置
b=t;
t=s;//t为分子,为正,为前一个数的分母值
s=b+s;//s为分母,为正,为前一个数的分子加分母值
i++;
}
printf("直到第%d项的和:%lf\n",n,sum);
}
希望对你有所帮助!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-04-14
分子和分母都是斐波那契序列,只是初始值不同罢了,奇数项为正,偶数项为负
斐波那契序列表达式如下:a[n+2]=a[n+1]+a[n]
第2个回答  2010-04-14
#include <stdio.h>

int main()
{
int f[100];
int i;
double sum;
double temp;
int n;

scanf("%d", &n);
if(n >= 100) {
printf("输入的n=%d太大\n", n);
return 0;
}
f[0] = 1;
f[1] = 2;
for(i = 2; i < 100; ++i) {
f[i] = f[i-1] + f[i-2];
}
sum = 0;
for(i = 0; i < n; ++i) {
temp = (i % 2 == 0 ? 1.0 : -1.0) * f[i] / f[i+1];
sum += temp;
}
printf("sum = %lf\n", sum);

return 1;
}
第3个回答  2010-04-27
xiela!!!!
相似回答