我无法理解如何在下面编写程序,我希望有人向我解释它的运行方式。有人可以向我解释这个程序的工作原理吗?
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