• <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 閱讀(315) 評論(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;
            }
            欧美精品福利视频一区二区三区久久久精品 | 99久久国语露脸精品国产| 91精品国产乱码久久久久久| 精品久久777| 一97日本道伊人久久综合影院| 久久婷婷五月综合成人D啪| 亚洲狠狠婷婷综合久久久久| 久久精品国产精品青草app| 怡红院日本一道日本久久 | 久久久久婷婷| 久久精品国产亚洲AV电影| 久久久久婷婷| 久久综合久久综合久久综合| 77777亚洲午夜久久多人| 国产福利电影一区二区三区久久老子无码午夜伦不 | 久久99九九国产免费看小说| 久久久久久a亚洲欧洲aⅴ| 久久精品国产亚洲AV久| 狠狠色丁香婷婷综合久久来来去 | 国产精品美女久久久久| 一本色道久久综合| 国产高潮国产高潮久久久91 | 青春久久| 欧美与黑人午夜性猛交久久久| 久久综合综合久久狠狠狠97色88| 亚洲精品乱码久久久久66| 人妻无码精品久久亚瑟影视| 欧美激情精品久久久久| 久久久国产精品福利免费| 久久久亚洲欧洲日产国码二区| 久久99这里只有精品国产| 欧美久久一级内射wwwwww.| 久久涩综合| 色婷婷噜噜久久国产精品12p | 久久亚洲国产精品成人AV秋霞 | 久久e热在这里只有国产中文精品99 | 精品国产青草久久久久福利| 一本大道加勒比久久综合| 99久久精品免费看国产| 91精品无码久久久久久五月天| 久久亚洲国产欧洲精品一|