• <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 閱讀(314) 評論(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;
            }
            久久精品成人一区二区三区| 久久亚洲AV成人无码电影| 国产精品免费久久| 国内精品伊人久久久久影院对白 | 久久亚洲欧洲国产综合| 久久久久国产精品人妻| 久久青青草原精品国产| 久久久久国色AV免费看图片| 欧美一区二区久久精品| 精品午夜久久福利大片| 久久久久久免费视频| 99久久人人爽亚洲精品美女| 亚洲天堂久久久| 国产激情久久久久影院小草 | 久久综合久久鬼色| 久久国产精品久久| 成人综合久久精品色婷婷| 国产高潮久久免费观看| 久久综合香蕉国产蜜臀AV| 亚洲七七久久精品中文国产| 国产精品免费看久久久香蕉| 久久A级毛片免费观看| 亚洲伊人久久成综合人影院| 国产精品成人99久久久久 | 蜜桃麻豆WWW久久囤产精品| 国产精品永久久久久久久久久| 精品综合久久久久久888蜜芽| 久久久亚洲裙底偷窥综合| 色99久久久久高潮综合影院 | 精品精品国产自在久久高清| 欧美日韩精品久久久久| 欧美精品九九99久久在观看| 久久精品国产黑森林| 久久久久久国产a免费观看不卡| 亚洲成色999久久网站| 亚洲综合精品香蕉久久网97| 88久久精品无码一区二区毛片 | 久久精品国产精品亚洲精品| 伊人 久久 精品| 亚洲国产另类久久久精品黑人 | 精品久久久久久国产三级|