C++程序编辑 求1,1,2,3,5,8,13求前20项和,感激不尽

如题所述

下面的程序先求出这个数列的前20项,其实这个数列是斐波那契数列,从第三项开始,每一项等于前面两项的和。求出前20项后,循环求该20项的和。最后输出结果。

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

int main()
{
int array[20]={0};
int i;
int sum=0;
array[0]=1;
array[1]=1;
for(i=2;i<20;i++)
{
array[i]=array[i-1]+array[i-2];

}
printf("the numbers are:\n");
for(i=0;i<20;i++)
{
sum+=array[i];
printf("%d ",array[i]);
}
printf("\nthe sum is %d\n",sum);
return 0;
}

运行结果如下,也可以自己跑一下程序,就看到结果了,最后输出前20项的和。应该符合你的要求。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-07-24
#include <iostream>
#include <cmath>
int main()
{
unsigned n = 20U;
    std::cout << 
(1/sqrt(5)) * 
pow(((1+sqrt(5))/2), n) -
pow((1-sqrt(5))/2, n) 
                        << std::endl;
return 0;
}
//就把楼上的公式转换了一下233

第2个回答  2015-07-21
题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。 1.程序分析:请抓住分子与分母的变化规律。 2.程序源代码: main() { int n,t,number=20; float a=2,b=1,s=0; for(n=1;n
第3个回答  2015-07-24
#include<iostream>
using namespace std;

int main()
{
int num1 = 1,num2 = 1,num3,count = 3;
int sum = num1 + num2;
while(count <= 20){
num3 = num1 + num2;
sum += num3;
num1 = num2;
num2 = num3;
count++;
}
cout<<sum<<'\n';
return 0;
}
第4个回答  2015-07-24
斐波那契数列:前n项和公式
(1/√5)*{[(1+√5)/2]^n - [(1-√5)/2]^n
带入n=20 代码就短了
相似回答