問題描述
輸入乙個正整數
n,輸出
n!的值。 其中
n!=1*2*3*…*
n。演算法描述
n!可能很大,而計算機能表示的整數範圍有限,需要使用高精度計算的方法。使用乙個陣列
a來表示乙個大整數
a, a[0]表示
a的個位,
a[1]表示
a的十位,依次類推。 將
a乘以乙個整數
k變為將陣列
a的每乙個元素都乘以
k,請注意處理相應的進製。
首先將a設為1,然後乘2,乘3,當乘到
n時,即得到了
n!的值。
輸入格式
輸入包含乙個正整數
n, n
<=1000。
輸出格式
輸出 n!的準確值。
樣例輸入
10樣例輸出
3628800
解釋:相比傳統的階乘計算,採用陣列進行處理,模仿手算的原理。
如果需要求更高精度的階乘計算,可以隨意更改陣列a的大小。
#include #include int main()
printf("%\n");
return 0;
}
階乘計算(高精度)
基礎練習 階乘計算 時間限制 1.0s 記憶體限制 512.0mb 問題描述 輸入乙個正整數n,輸出n 的值。其中n 1 2 3 n。演算法描述 n 可能很大,而計算機能表示的整數範圍有限,需要使用高精度計算的方法。使用乙個陣列a來表示乙個大整數a,a 0 表示a的個位,a 1 表示a的十位,依次類...
暑假訓練12 階乘計算 高精度處理
藍橋杯 基礎練習vip 階乘計算 題目描述 輸入乙個正整數n,輸出n 的值。其中n 123 n。演算法描述 n 可能很大,而計算機能表示的整數範圍有限,需要使用高精度計算的方法。使用乙個陣列a來表示乙個大整數a,a 0 表示a的個位,a 1 表示a的十位,依次類推。將a乘以乙個整數k變為將陣列a的每...
基礎演算法 高精度計算 高精度加法
輸入兩個數到兩個變數中,然後用賦值語句求他們的和,輸出。但是,我們知道,在c 中任何資料型別都有一定表示範圍。當兩個被加數很大時,上述演算法顯然不能求出精確解,因此尋求另外一種方法。在讀小學時,我們做加法都採用豎式方法,這樣,我們可以寫出兩個整數相加的演算法。我們用陣列a b分別儲存加數和被加數,用...