我正在撰寫一種將整數值遞回轉換為其二進制表示的方法。
我在下面撰寫的代碼僅通過使用方法來完成任務,但我想知道如何實際撰寫完整的方法。
import java.util.Scanner;
public class Exercise18_21 {
public static void main(String args[]){
Scanner input = new Scanner(System.in);
System.out.print("Enter a decimal integer: ");
int decimal = input.nextInt();
System.out.print("Enter a character: ");
System.out.printf("%d decimal is binary %s",decimal,dec2Bin(decimal));
}
//input: integer
//output: binary representation of integer as a string
public static String dec2Bin(int decimal){
return Integer.toBinaryString(decimal);
}
}
我的問題是如何通過遞回來實作?
uj5u.com熱心網友回復:
我想盡可能地保留您的代碼。因此我只是添加一個新方法successiveDivision(int)
import java.util.Scanner;
public class Exercise18_21 {
public static void main(String args[]) {
Scanner input = new Scanner(System.in);
System.out.print("Enter a decimal integer: ");
int decimal = input.nextInt();
System.out.print("Enter a character: ");
System.out.printf("%d decimal is binary %s", decimal, dec2Bin(decimal));
}
// input: integer
// output: binary representation of integer as a string
public static String dec2Bin(int decimal) {
return successiveDivision(decimal);
}
public static String successiveDivision(int dec) {
if (dec <= 0) {
return "";
} else {
int bit = dec % 2;
return successiveDivision(dec / 2) bit;
}
}
}
uj5u.com熱心網友回復:
您可以像使用筆和紙一樣實作它。使用模運算。除以 2 是遞回呼叫的引數,而 mod 2 是您當前的數字。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/470934.html