zoukankan      html  css  js  c++  java
  • 杭电2031 进制转换

    进制转换

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
    Total Submission(s): 49640    Accepted Submission(s): 27279


    Problem Description
    输入一个十进制数N,将它转换成R进制数输出。
     
    Input
    输入数据包含多个测试实例,每个测试实例包含两个整数N(32位整数)和R(2<=R<=16, R<>10)。
     
    Output
    为每个测试实例输出转换后的数,每个输出占一行。如果R大于10,则对应的数字规则参考16进制(比如,10用A表示,等等)。
     
    Sample Input
    7 2 23 12 -4 3
     
    Sample Output
    111 1B -11
     
    感觉没什么好说的,就是先取余再除进制,然后注意复数的情况。一次就能过。
    代码奉上:
    #include <iostream>
    #include<math.h>
    #include <iomanip>
    #include<cstdio>
    #include<string>
    #include<map>
    #include<vector>
    #include<list>
    #include<algorithm>
    #include<stdlib.h>
    #include<iterator>
    #include<sstream>
    #include<string.h>
    using namespace std;
    
    
    int main()
    {
        int m,n;//m->number n->jinzhi
        while(cin>>m>>n)
        {
            char a[100]={" "};
            int cnt=0;//记录有几位数
            int temp=0;
            int num=0;
            if(m>=0)
            {
                 while(m>0)
            {
                temp=m%n;
                if(temp<10)
                {
                    a[cnt]=temp+48;
                    cnt++;
                }
                else
                {
                    a[cnt]=temp+55;
                    cnt++;
                }
                m=m/n;
            }
            for(int i=cnt-1;i>=0;i--)
            {
                if(i!=0)
                {
                    cout<<a[i];
                }
                else
                {
                    cout<<a[i]<<endl;
                }
    
            }
    
            }
            else
            {
                 m=-m;
                 while(m>0)
            {
                temp=m%n;
                if(temp<10)
                {
                    a[cnt]=temp+48;
                    cnt++;
                }
                else
                {
                    a[cnt]=temp+55;
                    cnt++;
                }
                m=m/n;
            }
            cout<<"-";
            for(int i=cnt-1;i>=0;i--)
            {
    
                if(i!=0)
                {
                    cout<<a[i];
                }
                else
                {
                    cout<<a[i]<<endl;
                }
    
            }
    
            }
    
        }
    
        return 0;
    }
  • 相关阅读:
    Apache Spark探秘:利用Intellij IDEA构建开发环境
    Scala 安装
    Mac OS Git 安装
    Druid:一个用于大数据实时处理的开源分布式系统
    批量kill Linux环境下的任务
    Xshell如何设置,当连接断开时保留Session,保留原文字
    Superset
    mac连接Windows远程桌面
    IOS应用开发版本控制工具之Versions使用
    “不擅长编码?”-可视化编程插件来解决
  • 原文地址:https://www.cnblogs.com/William-xh/p/6912691.html
Copyright © 2011-2022 走看看