杭州大学online judge 的一道题,一直不能过:

http://acm.hdu.edu.cn/showproblem.php?pid=2009我的代码如下:#include<stdio.h>#include<math.h... http://acm.hdu.edu.cn/showproblem.php?pid=2009

我的代码如下:

#include<stdio.h>
#include<math.h>

int main()
{
double sum;
double n;
int m;
int i;

while (scanf("%lf%d",&n,&m) && (n<10000 && n>=0) && (m>=0 && m<1000))
{
sum = n;
for (i=1; i<m; i++)
{
sum += sqrt(n);
n = sqrt(n);
}
printf("%.2f\n",sum);

}
return 0;
}
展开
 我来答
dyy7500
2010-09-24 · TA获得超过300个赞
知道答主
回答量:46
采纳率:0%
帮助的人:51.6万
展开全部

代码没什么问题啊,

就是scanf("%lf%d",&n,&m) 输入数据的时候,两个数据之间加上

空隔就行了

ntchencheng
2010-09-24
知道答主
回答量:28
采纳率:0%
帮助的人:16.4万
展开全部
你的n=sqrt(n)丢失了精度,应该用double型的记住数列中的值
AC的代码:
#include <iostream>
#include <cmath>
int main()
{
int i,n,m;
double sum,temp;
while(scanf("%d%d",&n,&m)!=EOF)
{
sum=n;
temp=(double)n;//用double型的temp代替n进行迭代
for(i=1;i<m;i++)
{
sum+=sqrt(double(temp));
temp=sqrt(double(temp));
}
printf("%.2lf\n",sum);
}
return 0;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zrj_bd
2010-09-24 · TA获得超过1870个赞
知道小有建树答主
回答量:647
采纳率:100%
帮助的人:1096万
展开全部
是不是输入的格式问题:
81 4
2 2

要求一次性可以输入几组数据,然后再统一计算结果
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式