J'ai de la difficulté à comprendre comment programmer ci-dessous les travaux et j'apprécierais que quelqu'un m'explique comment ça fonctionne exactement.Quelqu'un peut-il m'expliquer comment fonctionne ce programme?
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);
}
Cette partie ci-dessous est spécifiquement ce que j'ai de la difficulté à comprendre. S'il vous plaît n'hésitez pas à expliquer en détail, je veux le comprendre pleinement. Merci pour votre temps.
private static int findGCD(int number1, int number2) {
//base case
if(number2 == 0){
return number1;
}
// Returns the two numbers
return findGCD(number2, number1%number2);
}
Réponse standard: Parcourez le programme dans votre débogueur, une ligne à la fois, en examinant les variables au fur et à mesure, jusqu'à ce que vous compreniez la logique. –
Le vote à la baisse semble dur pour moi? La récursivité est souvent difficile jusqu'à ce que vous l'obteniez. et de passer par le débogueur ne serait pas nécessairement utile à moins que vous sachiez quelle récursion était – Scheme