HDU2009
不幸的是做一题出现一次问题。。
这次是它
#include<stdio.h>
#include<math.h>
int main()
{
int i;
int m;
double sum, n;
while(scanf("%lf %d", &n, &m) != EOF){
sum = n;
for(i = 2; i < m; i++){
sum = sum + sqrt(n);
n = sqrt(n);
}
printf("%.2lf\n", sum);
}
return 0;
}
测试数据81 4总是出现93.00,后面的1.73被吃了么。。然后发现好像i初始大了。。好吧其实一开始是用数组的,发现看起来太乱,就改成了这样。结果for循环没改。。
i=2改成i=1就完事啦。
#include<stdio.h>
#include<math.h>
int main()
{
int i;
int m;
double sum, n;
while(scanf("%lf %d", &n, &m) != EOF){
sum = n;
for(i = 1; i < m; i++){
sum = sum + sqrt(n);
n = sqrt(n);
}
printf("%.2lf\n", sum);
}
return 0;
}
还有我发现了一个秘密,就是如果用double定义,输入的时候是%f输入,结果就是0.00。。下次再看到这种就能想起来了。只是我并不知道为什么会这样。。有大佬知道可以评论告诉我哦。。