我無法理解如何在下面編寫程序,我希望有人向我解釋它的運行方式。有人可以向我解釋這個程序的工作原理嗎?
public static void main(String[] args) {
//Enter two number whose GCD needs to be calculated.
Scanner scanner = new Scanner(System.in);
// Title of what program will do
System.out.println("GCD Finder");
System.out.println("");
// Here user is instructed to enter the numbers
System.out.println("Please enter first number: ");
int number1 = scanner.nextInt();
System.out.println("Please enter second number: ");
int number2 = scanner.nextInt();
// The numbers are then calculated using findGCD.
System.out.println("GCD of two numbers " + number1 +" and " + number2 +" is : " + findGCD(number1,number2));
}
private static int findGCD(int number1, int number2) {
//base case
if(number2 == 0){
return number1;
}
// Returns the two numbers
return findGCD(number2, number1%number2);
}
下面這部分是特別是我無法理解的。請不要猶豫,詳細解釋,我想充分理解它。感謝您的時間。
private static int findGCD(int number1, int number2) {
//base case
if(number2 == 0){
return number1;
}
// Returns the two numbers
return findGCD(number2, number1%number2);
}
標準響應:逐個調試器中的程序,一次一行,隨時檢查變量,直到理解邏輯。 –
投票對我來說似乎很難受?遞歸往往很難,直到你「得到」它。如果不知道遞歸是什麼,那麼使用調試器並不一定有幫助 – Scheme