int fun2(int tal)
{
int sum =0, k=1;
for (int i=0;i<10;i++)
{
k*=i+1;
sum +=tal/k;
}
return sum;
}
int main() {
int min =300;
int max=1000;
int total =(min+max)/2;
int ans=1001;
do{
int now =fun2(total);
if(now>ans)
{
max=total;
total=(min+total)/2;
} else if(now<ans)
{
min=total;
total=(max+total)/2;
} else
break;
}while (true);
cout<<total<<endl;
cout<<"end"<<endl;
return 0;
}
折半查找 就是584