實現大數階乘加法 1006 笨階乘

2021-10-14 16:21:29 字數 937 閱讀 6443

通常,正整數 n 的階乘是所有小於或等於 n 的正整數的乘積。例如,factorial(10) = 10 * 9 * 8 * 7 * 6 * 5 * 4 * 3 * 2 * 1。

相反,我們設計了乙個笨階乘 clumsy:在整數的遞減序列中,我們以乙個固定順序的操作符序列來依次替換原有的乘法操作符:乘法(*),除法(/),加法(+)和減法(-)。

例如,clumsy(10) = 10 * 9 / 8 + 7 - 6 * 5 / 4 + 3 - 2 * 1。然而,這些運算仍然使用通常的算術運算順序:我們在任何加、減步驟之前執行所有的乘法和除法步驟,並且按從左到右處理乘法和除法步驟。

另外,我們使用的除法是地板除法(floor division),所以 10 * 9 / 8 等於 11。這保證結果是乙個整數。

實現上面定義的笨函式:給定乙個整數 n,它返回 n 的笨階乘。

示例 1:

輸入:4

輸出:7

解釋:7 = 4 * 3 / 2 + 1

示例 2:

輸入:10

輸出:12

解釋:12 = 10 * 9 / 8 + 7 - 6 * 5 / 4 + 3 - 2 * 1

1 <= n <= 10000

-2^31 <= answer <= 2^31 - 1 (答案保證符合 32 位整數。)

解析:找規律題考慮四個數一組,a*b/c+d

實現大數階乘加法 大數階乘以及超大數輸出的實現

近期碰到個求大數階乘的題目,大意如下 原題來自pat基礎函式題 起初未考慮輸出超大數問題,直接printf輸出結果,但當數增大到一定程度後就無法正常輸出這才認識到到 d輸出範圍有限 中間還從 d到 ld,再到 lld做了努力。查詢下資料發現超大數問題可以通過字元形式輸出結果,下面分享下我的示例 in...

階乘之和 大數乘法和大數加法

時間限制 c c 1秒,其他語言2秒 空間限制 c c 262144k,其他語言524288k 64bit io format lld 題目描述 用高精度計算出s 1!2!3!n!n 50 其中 表示階乘,例如 5!54321。輸入正整數n 輸出計算結果s 輸入 3輸出 9利用數學方式計算大數。牛客...

N的階乘 大數階乘

輸入n求n的階乘的準確值。input 輸入n 1 n 10000 output 輸出n的階乘 首先,要確定n的階乘的數字大概有多少位,這樣便於我們去選擇合適的演算法。階乘 當n 10000時,上式值為35660 已經向上取整 所以接受 include include include include ...