[藍橋杯][基礎練習vip]階乘計算
題目描述
輸入乙個正整數n,輸出n!的值。
其中n!=123*…*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
無捷徑,全靠板子
// 階乘計算 --- 相當於就是高精度乘法的變形
#include
#include
#include
using
namespace std;
int num1[
500005];
int num2[10]
;int num3[
500005];
int n;
voidbt(
int k)
num2[0]
= t;
//儲存個數
}//乘法板子 0位都採取儲存位數的方式
void
mul(
)int k = num1[0]
+num2[0]
;while
(num3[k]==0
&&k>
0) k--
; num3[0]
= k;
}int
main()
}for
(int i = num1[0]
;i>=
1;i--
) cout<;return0;
}
階乘計算(高精度)
基礎練習 階乘計算 時間限制 1.0s 記憶體限制 512.0mb 問題描述 輸入乙個正整數n,輸出n 的值。其中n 1 2 3 n。演算法描述 n 可能很大,而計算機能表示的整數範圍有限,需要使用高精度計算的方法。使用乙個陣列a來表示乙個大整數a,a 0 表示a的個位,a 1 表示a的十位,依次類...
階乘計算(高精度)
問題描述 輸入乙個正整數 n,輸出 n 的值。其中 n 1 2 3 n。演算法描述 n 可能很大,而計算機能表示的整數範圍有限,需要使用高精度計算的方法。使用乙個陣列 a來表示乙個大整數 a,a 0 表示 a的個位,a 1 表示 a的十位,依次類推。將 a乘以乙個整數 k變為將陣列 a的每乙個元素都...
基礎演算法 高精度計算 高精度加法
輸入兩個數到兩個變數中,然後用賦值語句求他們的和,輸出。但是,我們知道,在c 中任何資料型別都有一定表示範圍。當兩個被加數很大時,上述演算法顯然不能求出精確解,因此尋求另外一種方法。在讀小學時,我們做加法都採用豎式方法,這樣,我們可以寫出兩個整數相加的演算法。我們用陣列a b分別儲存加數和被加數,用...