等比数列求和

ten21 2011-11-22 05:53:40
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
int n,a;
double q,sum,t;
while(cin>>n>>q)
{
if(q==1)
cout<<n+1<<endl;
else if(q!=1)
{ t=1;
for(a=0;a<=n;a++)
{
t=t*q;
}
sum=(1-t)/(1-q);
cout<<setiosflags(ios::fixed)<<setprecision(3)<<sum<<endl;
}
}
}



哪错了!!
...全文
688 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
ten21 2011-11-24
  • 打赏
  • 举报
回复
Description:
已知q与n,求等比数列之和: 1+q+q2+q3+q4+…+qn

Input:
输入数据含有不多于50对的数据,每对数据含有一个整数n(1≤n≤20),一个小数q(0<q<2)。
Output:
对于每组数据n和q,计算其等比数列的和,精确到小数点后3位,每个计算结果应占单独一行。
Sample Input:
6 0.3 5 1.3Sample Output:
1.428
12.756
zjs100901 2011-11-24
  • 打赏
  • 举报
回复
ACM里的要求的程序退出条件是什么?是输入0和0时退出吗?如果是,那就判断一下。
ten21 2011-11-24
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 lnwaycool 的回复:]
cout<<n+1<<endl; 没有精确到小数点后3位
[/Quote]

对了 谢谢。。这个小细节,平时都不注意!!
icanplay12345 2011-11-24
  • 打赏
  • 举报
回复
这个很多参考书上有例子
林临工作室 2011-11-24
  • 打赏
  • 举报
回复
cout<<n+1<<endl; 没有精确到小数点后3位
lyqf365 2011-11-23
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 ten21 的回复:]

我放到ACM里说是错的。。。。
[/Quote]
ACM对内存和运行时间有要求的。另外输入输出也有要求的。
a0380 2011-11-23
  • 打赏
  • 举报
回复
这也太简单了,设计两个变量a1(数列初始值)和n,用for语句循环即可求出
willimzzp 2011-11-23
  • 打赏
  • 举报
回复
#include<iostream> 
#include<iomanip>
using namespace std;
int main()
{
int n,a;
double q,sum,t;
while(cin>>n>>q)
{
if(q==1)
cout<<n+1<<endl;
else if(q!=1)
{
t=1;
for(a=0;a<=n;a++)
{
t = t * q;
}
sum=(1-t)/(1-q);
cout<<setiosflags(ios::fixed)<<setprecision(3)<<sum<<endl;
}
}
return 0;
}

报的是啥错啊
ten21 2011-11-23
  • 打赏
  • 举报
回复
我放到ACM里说是错的。。。。
無_1024 2011-11-22
  • 打赏
  • 举报
回复

#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
int n,a;
double q,sum,t;
while(cin>>n>>q)
{
if(q==1)
cout<<n+1<<endl;
else if(q!=1)
{
t=1;
for(a=0;a<=n;a++)
{
t = t * q;
}
sum=(1-t)/(1-q);
cout<<setiosflags(ios::fixed)<<setprecision(3)<<sum<<endl;
}
}
return 0;
}
//没什么问题啊
無_1024 2011-11-22
  • 打赏
  • 举报
回复
你这相当于 1 + q + q^2 + ... + q^n
zjs100901 2011-11-22
  • 打赏
  • 举报
回复
我可是等比数列的求和公式都忘了,就帮你格式化一下代码吧。
#include<iostream> 
#include<iomanip>
using namespace std;
int main()
{
int n,a;
double q,sum,t;
while(cin>>n>>q)
{
if(q==1)
cout<<n+1<<endl;
else if(q!=1)
{
t=1;
for(a=0;a<=n;a++)
{
t=t*q;
}
sum=(1-t)/(1-q);
cout<<setiosflags(ios::fixed)<<setprecision(3)<<sum<<endl;
}
}
}

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧