ZZULIOJ 1089 階乘的最高位

2021-10-10 15:29:03 字數 713 閱讀 3548

題目描述

輸入乙個正整數n。輸出n!的最高位上的數字。

輸入

輸入乙個正整數n(n不超過1000)。

輸出

輸出n!的最高位上的數字。

樣例輸入

1000
樣例輸出

4
這裡的提示是注意型別溢位,因為1000的階乘實際上是比double能表示的最大數還要大的。那麼如何處理這個就是本題目的關鍵。關於影響結果的是最高位數字,可以舉例子1000*999,如果不看結果是999000,後面的幾位數字不會對最高位產生影響。

#include

intmain()

a--;//迴圈變數遞減

}printf

("%d",(

int)s)

;//強制轉換,如果是double會四捨五入,所以變成int

}

1089 階乘的最高位 ZZULIOJ

題目描述 輸入乙個正整數n。輸出n 的最高位上的數字。輸入輸入乙個正整數n n不超過1000 輸出輸出n 的最高位上的數字。樣例輸入 copy 1000 樣例輸出 copy4提示 注意double型別溢位問題。include include intmain int a,b a int fact b ...

N的階乘 大數階乘

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

n的階乘問題 階乘位數 階乘末尾0的個數

初來乍到,望高手指教!原有解決n的階乘的方式 迭代,如果是大資料的話,迭代會吃掉大量記憶體,導致記憶體溢位 用平時的迭代解決n的階乘問題 在計算21的階乘時,結果已然為負數,超出整型資料表示範圍。計算34的階乘是,結果已然為0 此段 將n的階乘問題解決,實現無限大數的階乘!無限 兩字有點牽強,數字太...