等比数列

等比数列

时间: 1ms        内存:64M

描述:

已知q与n,求等比数列之和: 1+q+q2+q3+q4+…+qn



输入:

输入数据含有不多于50对的数据,每对数据含有一个整数n(1≤n≤20),一个小数q(0<q<20)。

输出:

对于每组数据n和q,计算其等比数列的和,精确到小数点后3位,每个计算结果应占单独一行。

示例输入:

6 0.3 5 1.3

示例输出:

1.428
12.756

提示:

参考答案(内存最优[920]):

#include<stdio.h>
int main()
{
	int n,i;
	double a,q,sum;
	while(scanf("%d %lf",&n,&q)!=EOF)
	{
		a=1;
	if(q==1)
	sum=n*q+1;
	if(q!=1)
	{
	for(i=1;i<=n;i++)
	{
		a*=q;
	}
	sum=q*(1-a)/(1-q)+1;
	}
	printf("%.3f\n",sum);
	}
return 0;
}

参考答案(时间最优[0]):

#include<iostream>
#include<cmath>
#include<iomanip>
using namespace std;
int main()
{
	double q,n,sum,z;
	while(cin>>n>>q)
	{
		sum=0;
		z=0;
		for(int i=0;i<=n;i++)
		{
			z=pow(q,i);
			sum+=z;
		}
		cout<<setiosflags(ios::fixed)<<setprecision(3)<<sum<<endl;
	}return 0;
}

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。

点赞