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。。下次再看到这种就能想起来了。只是我并不知道为什么会这样。。有大佬知道可以评论告诉我哦。。

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务