diff --git a/NetBeans Projects/Ricorsione/nbproject/project.properties b/NetBeans Projects/Ricorsione/nbproject/project.properties index bd0a0aa..ad8a1c6 100644 --- a/NetBeans Projects/Ricorsione/nbproject/project.properties +++ b/NetBeans Projects/Ricorsione/nbproject/project.properties @@ -75,7 +75,7 @@ main.class=ricorsione.Ricorsione manifest.file=manifest.mf meta.inf.dir=${src.dir}/META-INF mkdist.disabled=false -platform.active=Zulu_17.0.6_10 +platform.active=Oracle_OpenJDK_20_36 run.classpath=\ ${javac.classpath}:\ ${build.classes.dir} diff --git a/NetBeans Projects/Ricorsione/src/ricorsione/Ricorsione2.java b/NetBeans Projects/Ricorsione/src/ricorsione/Ricorsione2.java index 33f5ea2..5934449 100644 --- a/NetBeans Projects/Ricorsione/src/ricorsione/Ricorsione2.java +++ b/NetBeans Projects/Ricorsione/src/ricorsione/Ricorsione2.java @@ -9,30 +9,52 @@ import java.util.ArrayList; public class Ricorsione2 { public static ArrayList scomposizioneFattoriPrimi(int n) { ArrayList fattori = new ArrayList<>(); - + scomposizioneFattoriPrimi(n, fattori); + return fattori; + } + + public static void scomposizioneFattoriPrimi(int n, ArrayList x) { + if(n == 1) return; for (int i = 2; i <= n; i++) { if (n % i == 0) { - fattori.add(i); + x.add(i); n = n / i; break; } } if (n > 1) { - fattori.addAll(scomposizioneFattoriPrimi(n)); + scomposizioneFattoriPrimi(n, x); } - - return fattori; } public static String reverse(String text) { if (text.length() <= 1) { return text; } - return reverse(text.substring(1)) + text.charAt(0); + //return reverse(text.substring(1)) + text.charAt(0); + //return reverse(text, text.length() - 1); + char[] b = text.toCharArray(); + reverse(b, 0); + return String.valueOf(b); } - - + + public static String reverse(String text, int index) { + if(index == 0) return String.valueOf(text.charAt(index)); + return text.charAt(index) + reverse(text, index-1); + } + + public static void reverse(char[] x, int pos) { + int l = x.length; + if(pos < l/2) { + char tmp = x[pos]; + x[pos] = x[l - 1 - pos]; + x[l - 1 - pos] = tmp; + reverse(x, pos + 1); + } + } + + public static void main(String[] args) { int numero = 4; ArrayList fattoriPrimi = scomposizioneFattoriPrimi(numero); @@ -41,7 +63,7 @@ public class Ricorsione2 { for (int fattore : fattoriPrimi) { System.out.println(fattore); } - + System.out.println("----------------------"); String input = "Hello!";