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;
    }
  • 相关阅读:
    junit单元测试踩过的坑
    Arrays.asList()需要注意的点
    oracle数据库学习笔记
    实训笔记
    spring事务学习笔记
    java锁
    jvm内存模型
    iOS 应用架构 (三)
    iOS 应用架构 (二)
    iOS 应用架构 (一)
  • 原文地址:https://www.cnblogs.com/William-xh/p/6912691.html
Copyright © 2011-2022 走看看