@javaブルーブリッジ・カップ・グループBの運動の基礎(30)質問12:六角ターン進

@javaブルーブリッジ・カップ・グループBの運動の基礎(30)質問12:六角ターン進

問題の説明

正の整数N進与え、オクタルその出力は対応しています。

入力形式の
  入力が最初に正の整数Nに作用する(1 <= N <= 10)。
  次のn行、0からの各ラインA 9、大文字のAを 16進数に変換Fからなる文字列は、正の整数を表し、各進数の長さ100,000を超えません。

出力フォーマット
  出力n行、進正の整数に対応する各行為入力。

[注]
  16進数を入力は、012Aとして、0をリードしていません。
  進数も先行ゼロを持つことはできません。

サンプル入力
  2
  39
  123ABC

サンプル出力
  71がある
  4435274

[注]
  第一進数に16進数を変換し、進バイナリ数で変換されます。

コード:

(この質問は、私は、正しい答えをすることができませんでしたが、私は、オンラインで書くために兄を見つけ、評価結果の提出が共有への皆のためにここに出ている後、あなたもああ〜、元の兄を見ることができます!)

インポートjava.util.Scanner;
輸入java.util.Stackを;
パブリッククラスHexadecimalConversionToOctal {
静的な文字列convert16To2(チャーC){
int型のTEMP = C> = 'A'?C - 'A' + 10:C - '0'。
INT [] A =新たINT [4]。
私は0を= int型。
用(; I <a.length; I ++){
[I] = TEMP%2。
TEMP / = 2。
}
I-。
StringBufferのSB =新しいStringBufferを();
(; I> = 0; I-){ため
sb.append([I])。
}
)(sb.toStringを返します。
}

static String convert2To8(String str) {
	int result = 0;
	for (int i = 0; i < str.length(); i++) {
		result += Math.pow(2, str.length() - 1 - i) * (str.charAt(i) - '0');
	}
	return result + "";
}

static void convert16To8(String n) {
	StringBuffer sb = new StringBuffer();
	for (int i = 0; i < n.length(); i++) {
		sb.append(convert16To2(n.charAt(i)));// 把16进制数的每一位转换成四位2进制数字
	}
	Stack<String> stack = new Stack<>();
	for (int i = sb.length(); i >= 0; i -= 3) {
		int start = i - 3 >= 0 ? i - 3 : 0;
		String temp = sb.substring(start, i);
		stack.add(convert2To8(temp));// 从后向前每三位2进制数字转换成一位8进制数字,存储在栈中。
	}
	while (stack.peek().equals("0")) {
		stack.pop();// 删除前面的多余的0
	}
	while (!stack.isEmpty()) {
		System.out.print(stack.pop());
	}
	System.out.println();
}

public static void main(String[] args) {
	Scanner sc = new Scanner(System.in);
	int n = sc.nextInt();
	String[] strings = new String[n];
	for (int i = 0; i < n; i++) {
		strings[i] = sc.next();
	}
	for (String string : strings) {
		if (string.equals("0")) {
			System.out.println(0);
		} else {
			convert16To8(string);
		}
	}
}

}

コンテンツ転送します。https://blog.csdn.net/viclao/article/details/41328919

公開された29元の記事 ウォンの賞賛1 ビュー1094

おすすめ

転載: blog.csdn.net/DAurora/article/details/104161443