题意
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;
}