HDU2031 进制转换

输入一个十进制数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>
using namespace std;

int main() {
    int n, m;
    while(scanf("%d%d", &n, &m) != EOF) {
        int k = 0, a[1010];
        if(n < 0) {
            printf("-");
            n = -n;
        }
        
        while(n) {
            a[k++] = n % m;
            n /= m;
        }
        for(int i = k - 1; i >= 0; i--) {
            if(a[i] > 9) {
                printf("%c", a[i] - 10 + 'A');
            }
            else
                printf("%d", a[i]);
        }
        printf("\n"); 
    }
    
    return 0;
} 
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在C语言中,五种基本数据类型存储空间长度的排列顺序是: A)char B)char=int<=float C)ch...
    夏天再来阅读 3,427评论 0 2
  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 4,500评论 0 5
  • 十进制--->二进制 对于整数部分,用被除数反复除以2,除第一次外,每次除以2均取前一次商的整数部分作被除数并依次...
    张轻舟阅读 1,074评论 1 3
  • 3n+1 问题(10) Problem Description 考虑以下算法: 给定输入 22,将输出以下数字序列...
    myleosu阅读 2,118评论 0 2
  • 1. file n. 文件;v. 保存文件2. command n. 命令指令3. use v. 使用用途4. p...
    喵呜Yuri阅读 774评论 0 4