杭州大学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;
} 展开
我的代码如下:
#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;
} 展开
展开全部
你的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;
}
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;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是不是输入的格式问题:
81 4
2 2
要求一次性可以输入几组数据,然后再统一计算结果
81 4
2 2
要求一次性可以输入几组数据,然后再统一计算结果
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询