• <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 閱讀(303) 評論(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;
            }
            亚洲va国产va天堂va久久| 国产一区二区精品久久岳| 久久亚洲AV无码西西人体| 久久亚洲国产精品123区| 色99久久久久高潮综合影院| 久久99久国产麻精品66| 国产亚洲美女精品久久久久狼| 久久国产精品一区| 亚洲va久久久噜噜噜久久| 精品国产乱码久久久久久浪潮| 久久91精品国产91久| 久久九九全国免费| 久久久久久曰本AV免费免费| 日本久久久精品中文字幕| 久久妇女高潮几次MBA| 久久www免费人成精品香蕉| 久久午夜无码鲁丝片| 久久这里只有精品视频99| 久久ZYZ资源站无码中文动漫| 亚洲成av人片不卡无码久久| 久久被窝电影亚洲爽爽爽| 色综合久久久久无码专区| 欧美激情精品久久久久久久| 亚洲一本综合久久| 久久大香香蕉国产| 欧美一区二区三区久久综| 久久亚洲AV无码精品色午夜麻豆| 久久免费大片| 色综合久久久久综合99| 久久99精品国产99久久6| 精品久久久久久综合日本| 99国产欧美精品久久久蜜芽| 无码专区久久综合久中文字幕 | 欧美激情一区二区久久久| 国产亚洲色婷婷久久99精品91| 精品久久久久久亚洲| 2022年国产精品久久久久| 91精品国产综合久久久久久| 国产精品久久久久9999高清| 日本精品久久久久中文字幕| 88久久精品无码一区二区毛片 |