杭州エレクトリック--2031

問題やアイデアの意味

問題の意味:二つの入力数nが、R、N(10進数)が進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();
    }
}

 

おすすめ

転載: www.cnblogs.com/kyrie211/p/11183162.html