HDU1042 N! 萬進位

來源:互聯網
上載者:User

        表示剛開始了無思路!後來看了下討論,發現了"萬進位"。覺得奇妙,記下吧。

        這題也讓我有了點想法。我們經常用的進位就是2進位、8進位、10進位和16進位。何來“萬進位”?世上本無,有人喊了也就有了。呵呵

        現在來談談自己對進位的一點不成熟的想法。電腦能“識別”0和1,人能識別0、1、2、3、4、5、6、7、8、9以及其多位組合。那麼,

  為啥就單單有2、8、10、16這幾個進位。我想並不止這幾個,10進位是我們日常生活沿用來了的,難道來個5進位就不行?當然不是,不過

  一切以方便優先罷了!2進位是因為方便電腦識別才興起的,5000年前應該不會有2進位!8進位和16進位又因何2進位有天然聯絡,所以

  也出現了用途,2^3=8、2^4=16(例:這在《數字邏輯》中關於編碼方面有相關應用)。

         就題論題。再來談談1042的萬進位。也以一個例子來說明:

         107924372*15=1618865580。

         ①上面的乘法如果運用10進位,很簡單。

         ②萬進位呢?

               首先存數:a[0]=4372,a[1]=792,a[2]=1。107924372,從低位到高位每四位存到一個數組元素中。此時,總位元為3。

               接著運算:a[0]*15=65580,所以進位為a[0]/10000=6,a[0]=a[0]%10000=5580。a[1]*15=11880,a[1]=a[1]+6=11886。

                                 進位為1,a[1]=1886。a[2]*15=15,a[2]=a[2]+1=16,進位為0。

               輸出:a[2],a[1],a[0]即為1618865580。要注意的是:如果a[2]=886,那麼該如何輸出?直接輸出:168865580。顯然不對,

                          正確的是16088655880。輸出的原則是:最高位原樣輸出,其它位如果小於1000,則高位補0,一位一補。

 

          好了,不囉嗦了。AC代碼:

/*萬進位*/#include<iostream>#include<iomanip>using namespace std;int main(){void factorial(int n);  //階乘函數int n;while(cin>>n)factorial(n);return 0;}void factorial(int n){int a[10001];  int places,carry,i,j;a[0]=1;places=0;   //當前數的總位元for(i=1;i<=n;i++){carry=0;   //進位for(j=0;j<=places;j++){a[j]=a[j]*i+carry;carry=a[j]/10000;a[j]%=10000;}if(carry>0)  //如果一個數的總前一位大於一萬,則向前進位{places++;a[places]=carry;}}/*  輸出  最高位原樣輸出,  其他位小於1000的,高位補0*/cout<<a[places];for(i=places-1;i>=0;i--)cout<<setw(4)<<setfill('0')<<a[i];cout<<endl;}

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.