乙個整數n的階乘可以寫成n!,它表示從1到n這n個整數的乘積。階乘的增長速度非常快,例如,13!就已經比較大了,已經無法存放在乙個整型變數中;而35!就更大了,它已經無法存放在乙個浮點型變數中。因此,當n比較大時,去計算n!是非常困難的。
一段比較完善的**
int
main()
; ans[0]
=1;for
(int i=
2;i<=n;i++)if
(t!=0)
,x=0
;while
(t>0)
for(
int q=
0;q) ans[m++
]=bi[q]
; maxsize+
=x;}
else}}
for(
int i=maxsize-
1;i>=
0;i--
)//逆序輸出陣列,即為階乘的值
cout<; cout
int x=
0;xreturn0;
}
1.每次迴圈不要忘了對進製進行初始化,即t=0;
2.進製t不一定是個位數,有時會是乙個比較大的數字,當迴圈到最後一位的時候
陣列要增加的位數就不止是一位了,所以要把t每一位拆開來存到乙個新建的陣列中,
然後再把新陣列裡面t的每一位,順序賦值給結果陣列進製的位置。
3.大數相乘其實很簡單,結果陣列的每一位與要乘的數相乘,結果的個位
還給原陣列對應的位置,剩餘幾位作為進製,加入迴圈。
eg:147*35,7*35=245(5代替結果陣列7的位置,24作為進製),
4*35+24=164(4代替結果陣列4的位置,16作為進製),
1*35+16=51(1代替結果陣列1的位置,5作進製)。
得到結果陣列ans=;逆序輸出得到答案5145.
一些的總結
大學的教育模式是先教你原理,在教你怎麼用工具 而缺少樂趣,一般大牛 的思維模式都是這樣 先知道原理 在用工具 其實對於普通人來講,一般都是 知道原來還有這種利用方式?到 我要用工具來提高效率 廣用效率還不行 我要知道原理 誒好像現在工具滿足不了我的需要了,我要自己新增規則 新增的規則 以及滿足不了我...
大資料一些名稱
資料倉儲 英文名稱為data warehouse,簡稱dw,研究和解決從資料中獲取資訊,滿足企業商業決策和分析 資料化運營而建立,為企業提供資料智慧型來指導業務流程改進和優化時間 成本 質量和控制。商業智慧型 英文名稱為business intelligence,簡稱bi,指用現代資料倉儲技術 線上...
BOM 的一些總結
一 window物件 1 window 物件是整個瀏覽器的核心,所有物件和集合都以某種方式回接到window物件。2 如果頁面使用的框架集合,每個框架都由他自己的window物件表示,存放在 frames 集合中,在這個集合中,可用數字 由0開始,從左到右,逐行的 或名字對框架進行索引。3 乙個更加...