Precedente :: Successivo |
Autore |
Messaggio |
pasqal Comune mortale

Registrato: 27/09/08 15:19 Messaggi: 1
|
Inviato: 27 Set 2008 15:21 Oggetto: [C] numeri felici |
|
|
ciao a tutti, devo creare un programma che sia in grado di capire se un numero è felice o no al suo inserimento, e una seconda parte che sia in grado di generare i primi N numeri felici.
un numero felice è:Un numero si dice felice se sommando i quadrati delle sue cifre e ripetendo la somma dei quadrati per tutti i numeri che si ottengono, alla fine risulta 1.
7 è un numero felice, perché:
7 -> 7^2 = 49
-> 4^2+9^2= 16+81 = 97 ->
->9^2+7^2=81+49 = 130 ->
-> 1^2+3^2+0^2= 1+9+0 =10
-> 1^2+0^2=1+0 = 1
ecco, ora nn capisco come poter inserire un numeri e prendere le sue singole cifre per elevarle al quadrato e sommarle, senza contare che devo anche memorizzare ogni siungolo risultato per confrontarlo coi successivi e vedere se ne esce un altro uguale, perchè in quel caso vuol dire che il ciclo si ripete e che quindi il numero nn è felice.
io avevo pensato di fare tipo un inserimento di ogni cifra in un vettore con indice che aumenta automaticamente, e poi memorizzare ogni risultato in un vettore e ad ogni nuovo risultaqto ciclare il vettore per controllare che nn ci sia già stato un risultato uguale, e in quel caso stoppare tutto e dire che il numero nn è felice...cm potrei fare?
tipo fare inserire un numero sottoforma di stringa e poi usare "atoi" per ogni cifra e metterle tutte in variabili diverse, ma poi dovrei fare lo stesso anche per i risultati e risulta abbastanza complesso.
potreste aiutarmi con qualche idea per favore?? grazie mille aspetto con ansia |
|
Top |
|
 |
SverX Supervisor Macchinisti


Registrato: 25/03/02 12:16 Messaggi: 11810 Residenza: Tokelau
|
Inviato: 29 Set 2008 17:31 Oggetto: Re: [C] numeri felici |
|
|
pasqal ha scritto: | ecco, ora nn capisco come poter inserire un numeri e prendere le sue singole cifre per elevarle al quadrato e sommarle, senza contare che devo anche memorizzare ogni siungolo risultato per confrontarlo coi successivi e vedere se ne esce un altro uguale, perchè in quel caso vuol dire che il ciclo si ripete e che quindi il numero nn è felice |
per prendere una cifra per volta dividerei per 10 e utilizzerei il resto della divisione finchè la cifra che rimane non è 0. Ad esempio se hai 135 ottieni:
- 135/10 = 13 resto 5, quindi prendi il 5 e lo elevi al quadrato e lo metti nella tua variabile 'accumulatore'.
- 13/10 = 1 resto 3, prendi il 3, lo elevi e lo accumuli.
- 1/10 = 0 resto 1. Prendi l'1, lo elevi e lo accumuli, hai anche finito il ciclo perchè la divisione ha dato zero.
Poi riparti dal valore che hai ottenuto nell'accumulatore, se ho capito come funziona sta storia
 |
|
Top |
|
 |
|
|
Non puoi inserire nuovi argomenti Non puoi rispondere a nessun argomento Non puoi modificare i tuoi messaggi Non puoi cancellare i tuoi messaggi Non puoi votare nei sondaggi
|
|