C++编程小问题3

来源:百度知道 编辑:UC知道 时间:2024/06/21 11:24:24
请尽量使用简单易明的C++语言编程:

编一程序求前n项和

2/1,-3/2,5/3,-8/5,13/8........

#include <iostream>

using namespace std;

int main()
{
int n,i,f=1;
float sum=0;
cin>>n;
int *a=new int[n];
a[0]=1;
for(i=0;i<n;i++)
{
if(i!=0)
a[i+1]=a[i]+a[i-1];
else
a[i+1]=a[i]+1;
cout<<f*a[i+1]<<'/'<<a[i]<<' ';
sum=sum+((float)a[i+1]/a[i]*f);
f=-f;
}
cout<<endl;
cout<<sum<<endl;
system("pause");
return 0;
}

输入:5
输出:
2/1 -3/2 5/3 -8/5 13/8
2.19167

#include <iostream>

using namespace std;

// count项的和
double foo(int count)
{
if (count < 1) return 0;

int i = 1; // 保存符号
double sum = 0; // 和
double m, n; // 分子分母
m = 2; n = 1;

while (count-- > 0) {
sum += (m / n) * i;
m += n; // 后一个数的分