我无法理解如何编程以下作品,我希望有人向我解释它是如何运行的。
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);
}
答案 0 :(得分:1)
所以你特别挣扎的那部分:
onStart()
这是一个递归函数,我想象是什么导致你的困难。为了更好地理解递归函数,或许请阅读:http://www.python-course.eu/recursive_functions.php不要担心它以python为例。
在这种情况下,特别是当数字2为0时,函数将返回数字1。如果数字2不为零,则它将再次调用该函数,其中number2是number1 / number2的余数,否则称为模数%{{ 3}}
您可以在while循环中编写该函数:
onCreate()
希望有所帮助吗? 或者至少不会让任何事情变得更加混乱。