看到这道题的标签里没有高精度我也就放心写了:
#include<iostream>
using namespace std;
int maxk(int n,int k,double now){
now+=1.0/k;
if(now>n){
return k;
}else{
return maxk(n,k+1,now);
}
}
int main(){
int n;
cin>>n;
cout<<maxk(n,1,0.0);
return 0;
}
不算难,但是这道题如果不想时间复杂度太高就得用dp