注册 登录
编程论坛 C++教室

求教各位大神指点指点。 有一分数序列:2/1,-3/2,5/3,-8/5,13/8,-21/13,…,编程求出这个数列的前20 项之和。

YY不是J 发布于 2015-04-16 17:27, 878 次点击
#include<stdio.h>
void main()
{
    float x,y,z;
    int i,sum=0,flag=1;
    x=2.0;
        y=1.0;
        z=x/y;
        for(i=1;i<=20;i++);
        {
            x=x+y;
            y=x-y;
            z=x/y;
            flag=-flag;(只能写到这里,下面写不下去了)
根据题目中的要求,是算数列的前20项和嘛,然后,我在这不知道sum该怎么用,然后因为这个是正数和负数交替的,所以在这flag也不知道该怎么用。
请大神指点一下~~~ ,  谢谢大家了啊!
5 回复
#2
诸葛欧阳2015-04-16 18:54
你应该先搞清数字变化规律
#3
wmf20142015-04-16 21:33
#4
yangfrancis2015-04-17 00:26
#include<iostream>
#include<stdlib.h>
using namespace std;
int main()
{
    double down=1;//初始化分母
double up=2;//初始化分子
int idx;double sum=0;
double shift;
for(idx=0;idx<20;idx++)
{
    sum+=(up/down)*(1-(idx%2)*2);
    shift=up;cout<<shift<<'\t'<<sum<<endl;
    up+=down;
    down=shift;
}
cout<<sum;
system("pause");return 0;
}
#5
yangfrancis2015-04-17 00:28
其实主要就是用1-(idx%2)*2来实现1和-1之间的交替行为,不过我这里的idx取值是0~19
#6
YY不是J2015-04-17 11:53
谢谢大家啊,不过我自己已经写出来了
1