因爲剛開始刷題就先把AC率比較高的題刷完,這題又是一個水題,只需要暴力去試試就可以了,因爲double可能需要注意下設置個exp確保下精度誤差。
#include<iostream>
#include<stdio.h>
#include<math.h>
#define exp 1e-6
using namespace std;
int main()
{
double num;
double sum;
// freopen("input.txt","r",stdin);
while(cin>>num&&num){
sum=0;
for(int i=2;;i++){
sum+=1.0/i;
if(num<=sum+exp){
cout<<i-1<<" card(s)"<<endl;
break;
}
}
}
}