• P1100题


    大家好,我是刘家良

    这篇题解是我的第二篇题解。

    题目描述

    请你编一程序实现两种不同进制之间的数据转换。

    输入格式

    共三行,第一行是一个正整数,表示需要转换的数的进制n(2≤n≤16)n(2n16),第二行是一个n进制数,若n>10n>10则用大写字母A-FAF表示数码10-151015,并且该nn进制数对应的十进制的值不超过10000000001000000000,第三行也是一个正整数,表示转换之后的数的进制m(2≤m≤16)m(2m16)。

    输出格式

    一个正整数,表示转换之后的mm进制数。

    输入输出样例

    输入 #1
    16
    FF
    2
    
    输出 #1
    11111111
    思路
    我的思路是,先用字符串string输入一个数,把他转成int类型的一个数,在进行转进制操作
    代码如下:
    #include<bits/stdc++.h>//万能头文件
    using namespace std;
    int n,m,k='1'-1,f='A'-10,r,sum,w[1100005],o;
    string a;//输入用的字符串
    int main(){    
        cin>>n>>a>>m;
        r=a.size()-1;
        int d,s=n;
        for(int i=0;i<=a.size()-1;i++){
            if(a[i]>='0' && a[i]<='9') d=a[i]-k;
            else d=a[i]-f;
            if(r!=0){
                s=n;
                for(int j=1;j<r;j++)
                s*=n;
                d*=s;
                sum+=d;
            
            }
            else sum+=d;
            r--;
            
        }
        for(;sum>0;sum/=m)
        w[++o]=sum%m;
        for(int i=o;i>=1;i--){
            if(w[i]<10) cout<<w[i];
            else cout<<char(w[i]+f);
        }
        cout<<endl;
        return 0;
    }
     
  • 相关阅读:
    C++链式队列基本操作
    C++链栈基本操作
    C++顺序栈基本操作
    C++链表基本操作
    C/C++/JAVA
    C++操作链表
    How Many Maos Does the Guanxi Worth
    Heavy Transportation
    Frogger
    Til the Cows Come Home(Dijkstra)
  • 原文地址:https://www.cnblogs.com/hells/p/12852594.html
Copyright © 2020-2023  润新知