Indice del forum Olimpo Informatico
I Forum di Zeus News
Leggi la newsletter gratuita - Attiva il Menu compatto
 
 FAQFAQ   CercaCerca   Lista utentiLista utenti   GruppiGruppi   RegistratiRegistrati 
 ProfiloProfilo   Messaggi privatiMessaggi privati   Log inLog in 

    Newsletter RSS Facebook Twitter Contatti Ricerca
[C] numeri felici
Nuovo argomento   Rispondi    Indice del forum -> Programmazione
Precedente :: Successivo  
Autore Messaggio
pasqal
Comune mortale
Comune mortale


Registrato: 27/09/08 15:19
Messaggi: 1

MessaggioInviato: 27 Set 2008 15:21    Oggetto: [C] numeri felici Rispondi citando

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
Profilo Invia messaggio privato
SverX
Supervisor Macchinisti
Supervisor Macchinisti


Registrato: 25/03/02 12:16
Messaggi: 11810
Residenza: Tokelau

MessaggioInviato: 29 Set 2008 17:31    Oggetto: Re: [C] numeri felici Rispondi

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 Wink

Ciao
Top
Profilo Invia messaggio privato HomePage
Mostra prima i messaggi di:   
Nuovo argomento   Rispondi    Indice del forum -> Programmazione Tutti i fusi orari sono GMT + 2 ore
Pagina 1 di 1

 
Vai a:  
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