Numeri felici

« Older   Newer »
 
  Share  
.
  1. x-reynik-x
     
    .

    User deleted


    CITAZIONE (Ace. @ 5/11/2009, 21:09)
    Ecco il mio in Pascal:
    CODICE
    program numeri_felici;
    uses crt;
    var x,y,num,somma:integer;
       ris:boolean;
    begin
        readln(x);
        num:=x;
        somma:=0;
        ris:=false;
        while (x>1) and not(ris) do
        begin
             while num>0 do
             begin
                  y:=num mod 10;
                  somma:=somma+sqr(y);
                  num:=num div 10;
             end;
             if somma=1 then
                ris:=true;
             num:=somma;
             somma:=0;
             if num=4 then
                ris:=true;
        end;
        if num=1 then
           writeln(x,' è un numero felice')
        else
           writeln(x,' non è un numero felice');
        readln
    end.


    L'ho compilato con dev-pascal e il resoconto è questo: se il numero è felice scrive che lo è... però se non lo è non scrive niente XD quindi in qualche modo è giusto.

    EDIT: ho modificato il secondo "if" dentro il ciclo e ora va. In pratica mi pare di aver capito (leggendo da Wikipedia) che quando un numero non è felice durante la sequenza diventa sempre,ad un certo punto, 4, ma non sono sicuro, correggetemi se sbaglio.

    Come funziona?
     
    Top
    .
32 replies since 5/11/2009, 17:09   709 views
  Share  
.