等比数列求和(C++实现)

第一种实现方式,

最传统古老的,先求出每一项,然后再求和。

#include <fstream>
#include <iostream>
using namespace std;
int main(int argc, char* argv[])
{
    int i,j;
    while(cin>>i>>j) //输入两个数。一个是公比i,另一个是项数j.
    {
        int k=0,result=1;
        int sum=0;
        cout<<"第1个数数:"<<1<<endl;
        while(k<=j-1)
        {
            result=result*i;
            k++;
            sum+=result;
            cout<<"第"<<k+1<<"个数是:"<<result<<" "<<endl;
        }
        cout<<"阶乘之和是:"<<sum+1<<endl;
    }
    return 0;
}

第二种实现方式:

用等比数列的求和公式,借助pow(x,y).

#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
int main(int argc, char* argv[])
{
int n;
double q,sum;
while(cin>>n>>q)
{
if(q==1)sum=1+n;
else
sum=(1-pow(q,n+1))/(1-q);
cout<<sum<<endl;
}
return 0;
}

ps:本帖仅新手可见,其余人员自行过滤。

你可能感兴趣的:(C++,等比数列)