如何用C語言輸出100?
身邊暫時沒電腦,如果有了的話我會補上相應代碼,在這里只講具體思路。
對于十幾的階乘,直接遞推或者遞歸,將結果用longlong存下來即可,對于大整數階乘,考慮如下做法:對于n的階乘,
新建一個數組,來儲存結果,如果不需要考慮內存空間的話,直接int或uint即可,考慮到十進制進制法中,每一位最大為9,所以只要考慮每一位上9× n的最大取值不會爆就可以,具體的數據類型可以自由選擇,滿足上述即可,做法同普通豎式計算,對于普通兩個數j,k相乘,可以等同于將j乘以k上的每一位,再將結果重新寫回十進制即可,例如6乘25,我們可以寫成6×2 6×5,注意,中間的空格代表這是兩個不同位上的數(數組中每一個元素可以用來儲存一個位上的數字),但仍然是一個數,只是并非十進制而已,接下來我們整理一下這個新進制的數 12 30,轉成十進制過程如下:
12 30---15 0----1 5 0-----150,到此便成功改寫成了十進制,那么,重復以上過程n遍,每次把要乘的數用上述運算乘以之前得到的結果,并執行一次十進制轉化(存在效率問題,可以用n進制優化),最后,輸出數組前100位的數即可。
上一篇通訊異常被停機怎么恢復