我需要製作一個將十進制轉換爲十六進制的遞歸方法。 我不能使用Integer.toHexString
。 編輯:我想這個代碼,但它不能正常工作使用遞歸方法將十進制轉換爲十六進制Java
public static String Hexa(String s) {
String result = "";
int n = Integer.parseInt(s);
int remainder = n % 16;
if (n == 0) {
return Integer.toString(0);
} else {
switch (remainder) {
case 10:
result = "A" + result;
break;
case 11:
result = "B" + result;
break;
case 12:
result = "C" + result;
break;
case 13:
result = "D" + result;
break;
case 14:
result = "E" + result;
break;
case 15:
result = "F" + result;
break;
default: result = Integer.toString(n/16) + result; break;
}
System.out.println(result);
return Hexa(Integer.toString(n/16)) + result;
}
}
編輯: 改變了default
情況和if (n == 0)
循環return語句,現在精美的作品。
新代碼:
public static String Hexa(String s) {
String result = "";
int n = Integer.parseInt(s);
int remainder = n % 16;
if (n == 0) {
return "";
} else {
switch (remainder) {
case 10:
result = "A";
break;
case 11:
result = "B";
break;
case 12:
result = "C";
break;
case 13:
result = "D";
break;
case 14:
result = "E";
break;
case 15:
result = "F";
break;
default:
result = remainder + result;
break;
}
return Hexa(Integer.toString(n/16)) + result;
}
}
所以你有什麼嘗試? – Reimeus
'整數。toHexString'不會將十進制轉換爲十六進制:)無論如何, –
您連接了兩次,這就是爲什麼它不能正常工作。你正在迭代與遞歸混合。 –