这道题很简单,代码如下:
#include<iostream>
using namespace std;
int main()
{
double number, result=0.0;
while (cin >> number)
{
result = 0.0;
if (number - 0 < 0.01)//输入结束
{
break;
}
else
{
int n = 1;
while (result < number)
{
result +=( 1.0 / (n + 1) );
n++;
}
cout << n-1 << " " << "card(s)" << endl;
}
}
return 0;
}
但是第一次写代码时把:
result +=( 1.0 / (n + 1) );
写成:result +=( 1 / (n + 1) );
导致结果一直出不来。
因为n初始化为2,右式是int型的除法,结果一直是0。类型没有看清楚,引以为戒。