DEV3.2 TP'S

This commit is contained in:
2025-12-05 10:40:31 +01:00
parent cd5f593c57
commit 3108dea35f
5 changed files with 119 additions and 0 deletions

View File

@@ -0,0 +1,27 @@
public class Recursion {
public static void main(String[] args) {
if(args.length > 0) {
displayFactorial(Integer.parseInt(args[0]));
return;
}
System.out.println("Usage: java Recursion <number>");
}
public static void displayFactorial(int n) {
System.out.println(n + "! = " + factorial(n, 0));
}
private static int factorial(int n, int count) {
count++;
System.out.println("n = " + n + " | count = " + count);
if(n == 0) {
//Thread.dumpStack();
return 1;
}
return n * factorial(n - 1, count);
}
}

View File

@@ -0,0 +1,14 @@
Avec utilisation de dumpStack() :
On test pour factoriel de 3, on y voit bien 4 appels :
- 3 qui appellent le cas réussit
- 1 qui appelle le cas de base
nathanpasdutout@Macbook-Air-Nathan Exercise1 % java Recursion 3
java.lang.Exception: Stack trace
at java.base/java.lang.Thread.dumpStack(Thread.java:2209)
at Recursion.factorial(Recursion.java:18)
at Recursion.factorial(Recursion.java:22)
at Recursion.factorial(Recursion.java:22)
at Recursion.factorial(Recursion.java:22)
at Recursion.displayFactorial(Recursion.java:13)
at Recursion.main(Recursion.java:5)

View File

@@ -0,0 +1,35 @@
public class ArrayRecursion {
public static void main(String[] args) {
displayNumberOfPaireNumber(convertCommandArray(args));
}
public static int[] convertCommandArray(String[] args) {
return convertArray(args, 0, new int[args.length]);
}
private static int[] convertArray(String[] args, int index, int[] integerArray) {
if(index >= args.length) {
return integerArray;
}
integerArray[index] = Integer.parseInt(args[index]);
return convertArray(args, index + 1, integerArray);
}
public static void displayNumberOfPaireNumber(int[] array) {
System.out.println("Nombre de nombres paires : " + getNumberOfPaireNumber(array, 0));
}
private static int getNumberOfPaireNumber(int[] array, int index) {
if(index >= array.length) {
return 0;
}
if(array[index] % 2 == 0) {
return getNumberOfPaireNumber(array, index + 1) + 1;
}
return getNumberOfPaireNumber(array, index + 1);
}
}