Trovare la base per cui 434120 : 112 produce un resto nullo
Riscriviamo i numeri dati in notazione espansa
dove x indica la base cercata.
Deve essere chiaramente x >= 5.
Eseguendo la divisione dei due polinomi a secondo membro otteniamo
(dove Q e R indicano rispettivamente il quoziente e il resto della divisione).
Risulta allora
e quindi la base cercata è x=6.
Scrivere un algoritmo ricorsivo per verificare se una parola è palindroma.
class IsAPalindromeByRecursion { static boolean testPalindrome(final String s) { if (s.length() >= 2) { if (s.charAt(0) == s.charAt(s.length() - 1)) return testPalindrome(s.substring(1, s.length() - 1)); else return false; } else return true; /* e' un palindromo */ } public static void main(String[] arguments) { String stringhe[] = {"ABCD DCBA", "aBccba"}; int i; for (i = 0; i < stringhe.length; i++) { System.out.print("La stringa \"" + stringhe[i] + "\""); if (testPalindrome(stringhe[i]) == false) System.out.print(" non"); System.out.println(" e` un palindromo"); } } }
Scrivere un algoritmo ricorsivo per stampare i primi numeri pari in ordine decrescente e i primi dispari in ordine crescente utilizzando due metodi distinti: stampapari, stampadispari.
class PariDispariDecrescenteCrescenteXRicorsione { static int stampaPari(int n, int i) { if (i > 1) System.out.printf("%4d ", stampaDispari(n - 1, i + 1)); return i; } static int stampaDispari(int n, int i) { if (n > 1) System.out.printf("%4d ", stampaPari(n - 1, i + 1)); return n; } static void stampaFinoA(int n) { int ret; if (0 == (n % 2)) ret = stampaPari(n, 2); else ret = stampaDispari(n, 1); System.out.printf("%4d\n", ret); } static public void main(String[] arguments) { stampaFinoA(24); stampaFinoA(19); } }
Scrivere un algoritmo ricorsivo per ottenere l'inversione di una stringa.
class InversioneStringaXRicorsione { static String inverti(String s) { int len = s.length(); if (len > 1) return s.substring(len - 1, len) + inverti(s.substring(0, len - 1)); else return s; } public static void main(String[] arguments) { String stringa = "abcde f"; System.out.println("Stringa iniziale: " + stringa); System.out.println("Stringa invertita: " + inverti(stringa)); } }
| Lun | Mar | Mer | Gio | Ven | Sab | Dom |
|---|---|---|---|---|---|---|
| << < | ||||||
| 1 | 2 | |||||
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |