zoukankan      html  css  js  c++  java
  • WUST Online Judge

    1158: 零起点学算法65——进制转换

    Time Limit: 1 Sec  Memory Limit: 64 MB   64bit IO Format: %lld
    Submitted: 1652  Accepted: 933
    [Submit][Status][Web Board]

    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
    

    Source

    零起点学算法

    代码如下:

    #include <stdio.h>
    
    int main() {
        int n, r, a[100];
        while (scanf("%d%d", &n, &r) != EOF) {
            int flag = 1,i = 0;
            if(n < 0) {
                flag = 0;
                n = -n;
            } // 当n为负数时的处理方法
    
            do{
                a[i++] = n % r;
                n = n / r;
            }while(n); // 第一步转换:使用短除法转换十进制以下进制
    
            if (flag == 0) printf("-");
    
            while(i--) { // 第二步转换:将高于十进制的部分转化为字母形式
                if(a[i] > 9) {
                    printf("%c", 'A' + a[i] - 10);
                }
                else {
                    printf("%d", a[i]);
                }
            }
            printf("
    ");
         }
         return 0;
     }
    
    作者:McR
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    Makefile文件(五)_使用变量
    Makefile文件(四)_书写命令
    Makefile文件(三)_书写规则
    Makefile文件(二)_总述
    Makefile文件(一)_介绍
    select、poll和epoll
    LintCode 子树
    LintCode 字符串查找
    LintCode 用栈实现队列
    LintCode 丑数
  • 原文地址:https://www.cnblogs.com/mcr-tcp/p/9168225.html
Copyright © 2011-2022 走看看