一、问题描述
二、问题解析
实际上是求 1/2+ 1/3 + 1/4 + … + 1/(n + 1) 大于 题目给定的浮点数 c 时,n所需的最小值。
三、代码示例
注意:
- 输入c时用的是%lf而不是%f,这是因为c是double型的,这两个不能混用.
#include <stdio.h>
int a[1000] = { 0 };
int main()
{
double i,sum,c = 0;
int k,j = 0;
scanf("%lf", &c);
while (c - 0 >= 0.01)
{
sum = 0;
for (i = 2; sum < c; i++)
{
sum += 1 / i;
}
a[j++] = (int)(i - 2);
scanf("%lf", &c);
}
for (k = 0; k < j; k++)
{
printf("%d card(s)\n",a[k]);
}
}