私は以下の作品をどのようにプログラムするのかを理解するのに苦労しています。誰かがこのプログラムの仕組みを私に説明することはできますか?
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);
}
標準的な対応:ロジックを理解するまで、デバッガのプログラムを1行ずつ実行し、変数を調べてください。 –
ダウン投票は私にとって厳しいようですか?あなたがそれを "得る"まで再帰はしばしば困難です。あなたが再帰が何であるか分からなければ、デバッガをステップ実行することは必ずしも助けにはならないでしょう。 – Scheme