#include<iostream>
#include<cmath>
using namespace std;
float logg(int m)
{
if (m==0)
return 0;
float sum=0;
for (int i=1; i<=m;i++)
{
sum+=(log(i)/log(10));
}
return sum;
}
int main()
{
int a,b,ans=0;
while(cin>>a>>b)
{
do
{
ans+=1;
}while (ans<(logg(a)-logg(b)-logg(a-b)));
cout<<ans<<endl;
}
return 0;
}
如上,解法是把原題的Ca取b改成a!/(b!(a-b)!) (為了避免overflow)
再將其改成log的連加(簡稱為logg)
所以程式本身沒有問題(也測試過了),但不知道為何會TLE??