码迷,mamicode.com
首页 > 其他好文 > 详细

杭电 -- 2031

时间:2019-07-14 11:15:31      阅读:75      评论:0      收藏:0      [点我收藏+]

标签:static   自己   package   sys   自己的   16px   out   否则   注意   

技术图片

题意及思路

题意:输入两个数n,r,将n(十进制数)转换为r进制。

思路:%r操作即可转换。

踩坑点:第一,n有可能为负数,若为负数,则注意负数的情况。第二,若转换的数字大于10,exp:10 --> A。则将其转换为16进制中各个数的对应形式。尤其注意(我自己的问题),当输出一个字符(如A)时,不要“急着”输出换行符,否则将会步我的后尘。哎!

 

代码

package com.kyrie.java1;

import java.util.ArrayList;
import java.util.Scanner;

public class HD2031 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n, r;
        while (in.hasNext()) {
            n = in.nextInt();
            r = in.nextInt();
            trans(n, r);
        }
        in.close();
    }

    private static void trans(int n, int r) {
        int t = 0;
        boolean flag = false;
        if (n < 0) {
            flag = true;
            n = -n;
        }
        ArrayList<Integer> aL = new ArrayList<Integer>();
        // translate
        while (n != 0) {
            aL.add(n % r);
            n /= r;
        }
        // 判断负号
        if (flag) {
            System.out.print("-");
        }
        for (int i = aL.size() - 1; i >= 0; i--) {
            t = aL.get(i);
            if (t >= 10) {
                System.out.printf("%c", ‘A‘ + (t - 10));
            } else {
                System.out.print(t);
            }
        }
        System.out.println();
    }
}

 

杭电 -- 2031

标签:static   自己   package   sys   自己的   16px   out   否则   注意   

原文地址:https://www.cnblogs.com/kyrie211/p/11183162.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!