【刷題小記28】大數階乘

來源:互聯網
上載者:User

標籤:大數階乘

描述
我們都知道如何計算一個數的階乘,可是,如果這個數很大呢,我們該如何去計算它並輸出它?
輸入
輸入一個整數m(0<m<=5000)
輸出
輸出m的階乘,並在輸出結束之後輸入一個分行符號
分析:很明階乘的數比較大,用int會溢出,所以採用int數組的方法,用數組的元素來儲存每一位,根據乘法的相乘規則,用數組元素的每一位去乘迭代

#include <iostream>#include <cstring>#include <cstdlib>using namespace std;int main(){int arr[20000];memset(arr,0,sizeof(arr));int m;int count = 0;cin >> m;arr[0] = 1;for (int i = 2; i <= m; i++){for (int j = 0; j < 20000; j++){count = arr[j] * i + count;arr[j] = count % 10;count = count / 10;}}int i;for (i = 20000 - 1; !arr[i];i--);for (; i >= 0;i--){cout << arr[i];}cout << endl;return 0;}


【刷題小記28】大數階乘

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.