藍橋杯試題 基礎練習 階乘計算

2021-10-04 12:33:34 字數 886 閱讀 1100

資源限制

時間限制: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,請注意處理相應的...