• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            天之道

            享受編程的樂趣。
            posts - 118, comments - 7, trackbacks - 0, articles - 0
              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

            數制轉換

            Posted on 2012-09-13 15:10 hoshelly 閱讀(320) 評論(0)  編輯 收藏 引用 所屬分類: Programming
            Description

            對于任意十進制數轉換為k進制,包括整數部分和小數部分轉換。整數部分采用除k求余法,小數部分采用乘k取整法例如x=19.125,求2進制轉換

            整數部分19, 小數部分0.125
            19 / 2 = 9 … 1 0.125 * 2 = 0.25 … 0
            9 / 2 = 4 … 1 0.25 * 2 = 0.5   … 0
            4 / 2 = 2 … 0 0.5 * 2 = 1     … 1
            2 / 2 = 1 … 0
            1 / 2 = 0 … 1
            所以整數部分轉為 10011,小數部分轉為0.001,合起來為10011.001 請用堆棧實現上述數制轉換

            Input

            第一行輸入一個t,表示下面將有t組測試數據。

            接下來的t行的每行包含兩個參數n(0<n<10000,且最多有8位小數)和k(1<k<=16),n表示要轉換的數值,n可以帶小數(也可以不帶!),k表示要轉換的數制,k必須是正整數。大于10的進制數據用A\B\C\D\E\F表示

            Output

            對于每一組測試數據,每行輸出轉換后的結果,小數部分大于8位的,只輸出前8位小數

            Sample Input

            2
            19.125 2
            15.125 16
            Sample Output

            10011.001
            F.2



            代碼
            #include<iostream>
            #include<stack>
            using namespace std;
            int main()
            {
                stack<int> mystack;
                int t,m,k;
                double b,a;
                cin>>t;
                while(t--)
                {
                    int c,x[100],d=0,i=0,count=0;
                    cin>>b>>k;
                    m=b;
                    a=b-m;
                    while(m)
                    {
                        c=m%k;
                        m=m/k;
                        mystack.push(c);
                    }
                    while(1)
                    {
                        d=a*k;
                        if(d>=k)
                            break;
                        a=a*k;
                        x[i++]=d;
                        count++;
                    }
                    
                    while(!mystack.empty())
                    {
                        if(mystack.top()<10)
                        {
                            cout<<mystack.top();
                            mystack.pop();
                        }
                        else
                        {
                            switch(mystack.top())
                            {
                              case 10: cout<<"A"; mystack.pop(); break;
                              case 11: cout<<"B"; mystack.pop(); break;
                              case 12: cout<<"C"; mystack.pop(); break;
                              case 13: cout<<"D"; mystack.pop(); break;
                              case 14: cout<<"E"; mystack.pop(); break;
                              case 15: cout<<"F"; mystack.pop(); break;
                            }
                        }
                    }

                    
                    cout<<".";
                    for(i=0;i<count;i++)
                        cout<<x[i];
                    cout<<endl;
                
                }
                return 0;
            }
            色悠久久久久久久综合网| jizzjizz国产精品久久| 久久国产亚洲精品| 97久久国产露脸精品国产| 欧美噜噜久久久XXX| 久久电影网一区| 一本色道久久综合| 欧美久久精品一级c片片| 麻豆av久久av盛宴av| 99久久精品免费看国产免费| 思思久久99热只有频精品66| www.久久热| 久久午夜羞羞影院免费观看| 久久高潮一级毛片免费| 久久精品无码午夜福利理论片| 久久精品国产亚洲Aⅴ蜜臀色欲| 麻豆成人久久精品二区三区免费| 国产激情久久久久影院小草 | 久久精品夜夜夜夜夜久久| 国产综合精品久久亚洲| 久久国产免费观看精品3| 人妻无码精品久久亚瑟影视 | 狠狠色丁香久久婷婷综合图片 | jizzjizz国产精品久久| 久久精品卫校国产小美女| 久久国产高清一区二区三区| 狠狠色噜噜狠狠狠狠狠色综合久久| 色综合久久中文字幕无码| 久久久久久久精品成人热色戒| 久久久黄片| 欧洲国产伦久久久久久久| 99精品伊人久久久大香线蕉| 免费国产99久久久香蕉| 国产精品99久久久久久董美香| 青青草国产精品久久久久| 伊人久久综在合线亚洲2019 | 国产ww久久久久久久久久| 日本三级久久网| 久久精品国产99久久丝袜| 久久无码国产| 青青草原综合久久大伊人|