超時是因為妳使用遞歸造成的
遞歸算法的優缺點:
1優點:結構清晰,可讀性強,而且容易用數學歸納法來證明算法的正確性,因此它為設計算法、調試程序帶來很大方便。
2缺點:遞歸算法的運行效率較低,無論是耗費的計算時間還是占用的存儲空間都比非遞歸算法要多。
所以這裏為了效率就不要用遞歸了,用循環更好
把int f(int m)函數改下就可以了
int f(int m)
{
int i,x=1; for(i=1;i<=m;i++) x=x*i; return x;}
PS:我對這個題的理解跟妳的不壹樣。我的理解是:先輸入,輸入完之後在統壹輸出,而不是如妳寫的代碼那樣輸入m,n後就馬上輸出。我認為的運行效果如下圖:
個人觀點