Torna indietro   Hardware Upgrade Forum > Software > Programmazione

HUAWEI MatePad Air recensione: OLED opaco e tastiera dedicata per lavorare meglio
HUAWEI MatePad Air recensione: OLED opaco e tastiera dedicata per lavorare meglio
HUAWEI MatePad Air combina diverse carte molto interessanti: un OLED PaperMatte da 12 pollici, un corpo sottile e una tastiera molto comoda. Durante la prova abbiamo apprezzato fluidità, audio e comfort visivo, mentre i test hanno chiarito pregi e qualche limite nelle prestazioni. L'autonomia ha convinto anche nell'uso intermittente; la scelta passa dalla compatibilità delle proprie app e dal valore del pacchetto con accessori, proposto a 749 euro
NVIDIA RTX Spark: il PC Windows on ARM costruito per l'IA agentica
NVIDIA RTX Spark: il PC Windows on ARM costruito per l'IA agentica
Debuttano ufficialmente i primi sistemi notebook basati su piattaforma NVIDIA RTX Spark, abbinati a Windows on ARM e pensati per l'intelligenza artificiale agentica. Architettura integrata tra CPU e GPU che condividono la memoria di sistema, capace di gestire in locale modelli molto grandi ma al contempo anche di spiccare con la grafica e l'elaborazione
Motorola razr fold, dalla conchiglia al formato a libro. La recensione
Motorola razr fold, dalla conchiglia al formato a libro. La recensione
Abbiamo provato Motorola razr fold, il pieghevole a libro con display interno LTPO da 8,09 pollici, Snapdragon 8 Gen 5 e batteria da 6000 mAh in 243 grammi. Pennino e custodia sopno già nella confezione, per un foldable che si caratterizza per il pannello luminoso, l'autonomia ottima per la categoria e le fotocamere coerenti e ben sfruttabili. Il listino è di 1999 euro, ma in vendita si trova già a molto meno
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 16-01-2009, 18:26   #1
Merlino86
Senior Member
 
L'Avatar di Merlino86
 
Iscritto dal: Jan 2008
Città: Imperia
Messaggi: 1171
[JAVA] Algoritmo ricorsivo inversione cifre

Salve a tutti sono alle prese con questo semplice algoritmo ma alquanto fastidioso...il mio obiettivo è invertire un numero es.: input 12345 -output 54321... sono riuscito a fare ciò solo trasformando le cifre in stringhe per poi concatenarle...vi posto la mia soluzione:

Codice:
public static int inversioneR(int x)
       {   
    	   
    	   String numero = "";    	    
    	   if(x<10)  return x ;
    	   else 
    		   {    		     
    		     int inverso = x % 10;
    		     numero += inverso;
    		     int newX = x / 10;  
    		     return  Integer.parseInt(numero + inversioneR(newX)); 
    		     
    		   }
Non riesco a trovare invece la soluzione la quale non comporti la trasformazione delle cifre in lettere ...se qualcuno fosse così gentile da perdere qualche minuto per aiutarmi gliene sarei grato...grazie in anticipo
Merlino86 è offline   Rispondi citando il messaggio o parte di esso
Old 16-01-2009, 19:30   #2
Don[ITA]
Senior Member
 
L'Avatar di Don[ITA]
 
Iscritto dal: Jul 2006
Città: Bergamo
Messaggi: 401
Beh ma credo non cambierebbe nulla trasformandole in lettere
Alla fine ti troveresti un array di char invece che una stringa (che è per l'appunto un array di char). Ho forse capito male quello che vuoi fare?
__________________
iMac 27" 5K
Don[ITA] è offline   Rispondi citando il messaggio o parte di esso
Old 16-01-2009, 20:24   #3
Merlino86
Senior Member
 
L'Avatar di Merlino86
 
Iscritto dal: Jan 2008
Città: Imperia
Messaggi: 1171
Quote:
Originariamente inviato da Don[ITA] Guarda i messaggi
Beh ma credo non cambierebbe nulla trasformandole in lettere
Alla fine ti troveresti un array di char invece che una stringa (che è per l'appunto un array di char). Ho forse capito male quello che vuoi fare?
Praticamete io ho già trovato la soluzione per invertire il numero ma questo comporta la trasformazione della cifra in un carattere per poterla concatenare (attraverso l'operatore "+" ) alla prossima cifra sempre trasformata in carattere...invece vorrei riuscire a invertire il numero senza ricorrere alla trasformazione di ogni singola cifra in carattere..mi sono riuscito a spiegare bene questa volta?...
Merlino86 è offline   Rispondi citando il messaggio o parte di esso
Old 17-01-2009, 09:24   #4
wisher
Senior Member
 
L'Avatar di wisher
 
Iscritto dal: Aug 2005
Messaggi: 2755
Puoi aiutarti pensando che quando concateni ad un numero una cifra quello che ottieni è questo:
Codice:
Numero.Cifra -> Numero*10+Cifra
__________________
wisher è offline   Rispondi citando il messaggio o parte di esso
Old 18-01-2009, 10:46   #5
Merlino86
Senior Member
 
L'Avatar di Merlino86
 
Iscritto dal: Jan 2008
Città: Imperia
Messaggi: 1171
Quote:
Originariamente inviato da wisher Guarda i messaggi
Puoi aiutarti pensando che quando concateni ad un numero una cifra quello che ottieni è questo:
Codice:
Numero.Cifra -> Numero*10+Cifra
Si infatti questa è la regola base per concatenare le cifre...ma nella ricorsione la quale inizia a stampare dall'ultimo valore preso in esame bisognerebbe trovare una soluzione per isolare la prima cifra del numero e concatenarla alle successive ricorsivamente ....in questo modo otterremmo come prima stampa l'ultima cifra del numero , come seconda la penultima cifra e così via.... credo ke la soluzione sia questa ma nn riesco ancora a isolare la prima cifra del numero....
Merlino86 è offline   Rispondi citando il messaggio o parte di esso
Old 18-01-2009, 10:53   #6
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Non riesci a trovarlo perché pensi a fare la ricorsione solo in fondo...se la fai all'inizio cosa succede ?
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 18-01-2009, 12:03   #7
Merlino86
Senior Member
 
L'Avatar di Merlino86
 
Iscritto dal: Jan 2008
Città: Imperia
Messaggi: 1171
Quote:
Originariamente inviato da cionci Guarda i messaggi
Non riesci a trovarlo perché pensi a fare la ricorsione solo in fondo...se la fai all'inizio cosa succede ?
grazie per il suggerimento ma sinceramente ho le idee ancora più confuse.. mi dispiace .... forse ho bisogno di capire ancora meglio la ricorsione....
Merlino86 è offline   Rispondi citando il messaggio o parte di esso
Old 18-01-2009, 19:28   #8
clockover
Senior Member
 
L'Avatar di clockover
 
Iscritto dal: Oct 2004
Messaggi: 1945
Fatti un disegnino ad alberello di come lavora l'algoritmo!
Si comincia dal caso base (non sempre ovviamente), cioè quando l'algoritmo deve fermarsi! Quando si ferma comincia dall'alto della pila (stack) a far proseguire l'algoritmo che ha richiamato l'ultima volta la ricorsione! In questo modo l'elemento letto all'ultimo, sarà il primo ad essere elaborato!

ti faccio un esempio
Codice:
public static void leggiArr(int a[]){
	leggiArr(a, 0);
}
public static void leggiArr(int a[], int i){
	if(i == a.length)return;
	System.out.print(a[i]+" ");
	leggiArr(a, i + 1);
}
nel secondo metodo dovresti saper riconoscere la ricorsione, e l'elaborazione degli elementi, in questo caso con la stampa a video! Per il tuo metodo devi apportare una piccola variazione!
Ciao
clockover è offline   Rispondi citando il messaggio o parte di esso
Old 20-01-2009, 08:46   #9
Merlino86
Senior Member
 
L'Avatar di Merlino86
 
Iscritto dal: Jan 2008
Città: Imperia
Messaggi: 1171
grazie a tutti per esservi interessati al mio problema...."ho trovato" la soluzione....
Merlino86 è offline   Rispondi citando il messaggio o parte di esso
Old 20-01-2009, 09:11   #10
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Rendici partecipi
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 20-01-2009, 09:43   #11
Merlino86
Senior Member
 
L'Avatar di Merlino86
 
Iscritto dal: Jan 2008
Città: Imperia
Messaggi: 1171
Quote:
Originariamente inviato da cionci Guarda i messaggi
Rendici partecipi
certo con molto piacere....

allora essenzialmente "l'unica" soluzione è questa:

Passo base: portarsi dietro come parametro esplicito della chiamata ricorsiva una variabile che potesse sommare l'ultima cifra del numero moltiplicata per 10 alla penultima e così via fino alla prima.

quindi il codice sarebbe questo
Codice:
    public static int inversioneR(int numero, int inverso)
	   {
			int resto = numero % 10;
			if(numero > 10)
			{
				int newNumero =  numero / 10;
				inverso = (inverso + resto) * 10;
				return inversioneR(newNumero,inverso);
			}
			else			
				return inverso + resto;
			
		}
Ovviamente la chiamata a questo metodo sarebbe :

inversioneR( numeroDaInvertire , 0 )

Vi ringrazio ancora per i vostri suggerimenti
Merlino86 è offline   Rispondi citando il messaggio o parte di esso
Old 20-01-2009, 10:14   #12
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Bene.

Però si sarebbe potuto fare anche con un solo parametro sfruttando alcun proprietà matematiche.

PS: sia chiaro, non è più veloce di come l'hai fatto te
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 20-01-2009, 10:21   #13
Merlino86
Senior Member
 
L'Avatar di Merlino86
 
Iscritto dal: Jan 2008
Città: Imperia
Messaggi: 1171
Quote:
Originariamente inviato da cionci Guarda i messaggi
Bene.

Però si sarebbe potuto fare anche con un solo parametro sfruttando alcun proprietà matematiche.

PS: sia chiaro, non è più veloce di come l'hai fatto te
era quello che volevo ottenere come soluzione ma sinceramente non sono riuscito a trovare la sequenza di calcoli matematici esatta....
Merlino86 è offline   Rispondi citando il messaggio o parte di esso
Old 20-01-2009, 10:24   #14
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Pensa a logaritmo in base 10 ed elevazione a potenza di 10
cionci è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


HUAWEI MatePad Air recensione: OLED opaco e tastiera dedicata per lavorare meglio HUAWEI MatePad Air recensione: OLED opaco e tast...
NVIDIA RTX Spark: il PC Windows on ARM costruito per l'IA agentica NVIDIA RTX Spark: il PC Windows on ARM costruito...
Motorola razr fold, dalla conchiglia al formato a libro. La recensione Motorola razr fold, dalla conchiglia al formato ...
Recensione Google Pixel Watch 5: sembra lo stesso, ma al polso la differenza si sente Recensione Google Pixel Watch 5: sembra lo stess...
Nokia Innovation Day 2026: la sovranità europea passa dal mercato unico e dai laboratori italiani del gruppo Nokia Innovation Day 2026: la sovranità e...
Il satellite spia russo Kosmos 2612 si t...
Blue Origin continua l'espansione: nuove...
Intel prepara un SoC da 700 TOPS: Razor ...
I nuovi Xreal 1 Pro+ arrivano in Europa ...
La GeForce RTX 5090 non è morta: ...
HONOR Win2 si mostra online: potenza da ...
Clamoroso dietrofront di Sony: cancellat...
GeForce NOW, tante novità con l'u...
Il mercato smartphone rallenta nel Q3 20...
Addio al Valve Index: fine della produzi...
Seggiolini auto i-Size da 0 a 12 anni in...
Amazon determina i prezzi di tutto il we...
Robot aspirapolvere ECOVACS in offerta s...
Bodywel F20PRO o DEEPOWER A5? Due fat bi...
Gli agenti AI non diventano pazzi, sono ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 03:42.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v