階乘計算(高精度)

2021-08-16 10:00:07 字數 649 閱讀 4437

問題描述

輸入乙個正整數

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分別儲存加數和被加數,用...