c语言编程计算数列1/2,-2/3,3/5,-5/8,8/13,…的前20项和!!大神~~~求求求

如题所述

// 求数列的前n项之和,数列初始元素为1/2
//下一元素的分子是上一元素的分母
//下一元素的分母是上一元素的分子分母绝对值之和
//偶数项为负,奇数项为正
double sum(unsigned int n)
{
int i = 0;
double sum = 0;
double numerator, denominator, tmp;
numerator = 1.0; //分子
denominator = 2.0; //分母
if (n <= 0)
return 0;
sum = 0.5; // 1/2 数列中第一个元素,分子为1, 分母为2
for (i = 1; i < n; ++i)
{
if (i % 2 == 0)
{
sum += denominator / (denominator + numerator);
}
else
{
sum -= denominator / (denominator + numerator);
}
// 计算数列中下个元素的分子分母,下一个元素的分子是上一个元素的分母
// 下一个元素的分母,是上一个元素的分子分母绝对值之和
tmp = denominator;
denominator += numerator;
numerator = tmp;
}
return sum;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-12-19
找出通项,符号使用-1来控制。追问

帮我编程可以嘛?我不会啊~可是作业马上就要交了!

追答

经典代码想不起来!自己写的,将就用吧!
#include
void main(){
float a=1,b=2,d;
float sum=0;
int i=0;
int c=-1;
while(i<20)
{
c=-c; //为了控制符号
sum=sum+a*c/b;
d=a,a=b,b=b+d;
i++;
}
printf("%.3f\n",sum); //控制3位小数点,你可以改
}

第2个回答  2012-12-19
0c语言编程计算数列1/2,-2/3,
相似回答