• <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;
            }
            一级做a爰片久久毛片人呢| 久久久久亚洲国产| 久久精品国内一区二区三区| 国产精品免费福利久久| 久久精品国产91久久综合麻豆自制| 亚洲国产精品婷婷久久| 欧美日韩精品久久免费| 青青草原综合久久| 久久久久免费精品国产| 97久久精品人人澡人人爽 | 亚洲精品乱码久久久久久蜜桃图片 | 亚洲中文字幕久久精品无码喷水| 亚洲狠狠婷婷综合久久久久 | 久久er国产精品免费观看8| 久久亚洲国产精品五月天婷| 久久久久久国产精品无码超碰| 99久久精品国产综合一区| 亚洲国产精品无码久久一线| 久久精品成人免费观看97| 国产精品久久久久久久久免费 | 岛国搬运www久久| 亚洲愉拍99热成人精品热久久 | 久久人与动人物a级毛片| 亚洲国产成人久久综合一| 亚洲国产精品一区二区久久hs| 久久一本综合| 久久亚洲高清综合| 久久99精品久久久久久不卡 | 青青草国产精品久久久久| 久久亚洲春色中文字幕久久久| 精品综合久久久久久98| 麻豆久久久9性大片| 亚洲国产综合久久天堂 | 亚洲国产精久久久久久久| 69久久夜色精品国产69| 久久久一本精品99久久精品66| 日本强好片久久久久久AAA| 久久人人爽人人爽人人片av高请 | 久久成人小视频| 欧美日韩久久中文字幕| 久久国产色av免费看|