資源限制
時間限制:1.0s 記憶體限制:512.0mb
問題描述
輸入乙個正整數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
using
namespace std;
int c;
intmain()
else
//小於10不用產生進製}}
reverse
(a.begin()
,a.end()
);//將陣列元素翻轉,逆序排列
//逆序後會產生類似「00000000035223052」這樣的數,前面的0是沒有用到的位數,後面的數是實際階乘值,將前面的0去掉即可
for(
int k=
0;ksize()
;k++
)//遍歷尋找第乙個不為0的元素的下標
}for
(int m=c;msize()
;m++
)//這裡不將k直接賦值給m是因為k是上邊那層迴圈的,帶不到這來,所以用個中間變數過度一下
return0;
}
藍橋杯試題 基礎練習 階乘計算
題目鏈結 基礎練習 階乘計算 資源限制 時間限制 1.0s 記憶體限制 512.0mb 問題描述 輸入乙個正整數n,輸出n 的值。其中n 1 2 3 n。演算法描述 n 可能很大,而計算機能表示的整數範圍有限,需要使用高精度計算的方法。使用乙個陣列a來表示乙個大整數a,a 0 表示a的個位,a 1 ...
藍橋杯 試題 基礎練習 階乘計算
試題 基礎練習 階乘計算 資源限制 時間限制 1.0s 記憶體限制 512.0mb 問題描述 輸入乙個正整數n,輸出n 的值。其中n 123 n。演算法描述 n 可能很大,而計算機能表示的整數範圍有限,需要使用高精度計算的方法。使用乙個陣列a來表示乙個大整數a,a 0 表示a的個位,a 1 表示a的...
藍橋杯試題 基礎練習 階乘計算
問題描述 輸入乙個正整數n,輸出n 的值。其中n 123 n。演算法描述 n 可能很大,而計算機能表示的整數範圍有限,需要使用高精度計算的方法。使用乙個陣列a來表示乙個大整數a,a 0 表示a的個位,a 1 表示a的十位,依次類推。將a乘以乙個整數k變為將陣列a的每乙個元素都乘以k,請注意處理相應的...