HDU--IMNU集训四:进制转换 回顾了一下C语言和递归初级

来源:互联网 发布:编程要学哪些东西 编辑:程序博客网 时间:2024/06/05 02:49
虽然代码是自己写的,可思路完全是别人的,没有一个思考的过程···进步会很慢!
对于多方面的考虑还是不周到···特别是字符串类的问题,现在记下以后遇到格外加强练习!

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<stdio.h>
#include<algorithm>
#include<cmath>
using namespace std;
void DecToBin(int n,int r)
{
    if(n)
    {
       DecToBin(n/r,r);
       printf( "%c", n%r>9 ? n%r-10+'A' : n%r+'0' );   
    }
    
}
int main ()
{
    int n,r;
    while( scanf("%d%d",&n,&r)!=EOF )
    {
         if(n>0)
            DecToBin(n,r);
            else if(!n)
                    putchar('0');
                    else
                    {
                        putchar('-');
                        DecToBin(-n,r);
                    }
         putchar('\n');// \\\\\///// 
              
    }   
    return 0;
}
 
格外注意0的情况!没考虑啊···自己想不到啊
putcharputcharputcharputcharputchar···
0 0