【FOJ】Problem 1002 HangOver

Problem 1002 HangOver.

题意

n张卡最多能超出桌面 1/2 + 1/3 + 1/4 + … + 1/(n + 1) card lengths
给定超出桌面的长度(以0.00结束)
求最少需要用多少张卡

思路

从1张卡(1/2长)开始累加,计算能超出桌面的最大长度,当长度大于给定值时输出当前的牌数

笔记

  • 以输入为0.00时结束,不是文件末尾结束
  • 改掉while循环条件以后忘了在循环体末尾重新读取n值,陷入死循环,第一次出现 Output Limit Exceed 错误

代码

#include<stdio.h>

int main(){
	double n;
	double sum;
	int num;
	scanf("%lf", &n);
	while(n != 0){
		sum = 0;
		num = 0;
		while(sum < n){
			num += 1;
			sum += 1.0/(num + 1);
		}
		printf("%d card(s)\n", num);
		scanf("%lf", &n);
	}
	return 0;
}
发布了28 篇原创文章 · 获赞 0 · 访问量 338

猜你喜欢

转载自blog.csdn.net/qq_44531167/article/details/105078840