等比数列
时间: 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;
}
题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。