zoukankan      html  css  js  c++  java
  • 递归转换进制

    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

    注意0的情况 负数的情况

    #include <stdio.h>
    #include <string.h>
    #include <deque>
    #include <algorithm>
    #include <iostream>
    using namespace std;
    int fun(int n,int r)
    {
        if(n==0)
            return 1;
        fun(n/r,r);
        if(n%r>=10)
        {
            int m=n%r-10;
            char c='A';
            printf("%c",c+m);
        }
        else
            printf("%d",n%r);
        return n;
    }
    int main()
    {
        int n,r;
        while(~scanf("%d%d",&n,&r))
        {
            if(n>0)
               fun(n,r);
            else
            if(n==0)
               printf("0");
            else
            {
                printf("-");
                fun(-n,r);
            }
            puts("");
        }
    }
  • 相关阅读:
    linux 第五天
    linux 第四天
    二进制 位运算
    二进制
    java 方法的调用过程
    Linux 第三天
    Linux 第二天
    Linux
    学习了半个多月的TankGame
    学习第一天(spring)
  • 原文地址:https://www.cnblogs.com/zcy19990813/p/9702768.html
Copyright © 2011-2022 走看看