#25901: 還是TLE


C0079 (Wings)

學校 : 國立臺灣大學
編號 : 157595
來源 : [223.140.116.124]
最後登入時間 :
2023-08-03 20:29:59
b897. 10219 - Find the ways ! -- UVa 10219 | From: [61.228.217.132] | 發表日期 : 2021-07-02 23:42

#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??

 
ZeroJudge Forum