Dimostrare o confutare:
<BR>
<BR>Sia n un numero naturale.
<BR>1) Moltiplicarlo per 9.
<BR>2) Rimuovere dal risultato la cifra delle unita\'.
<BR>3) Ricominciare con il nuovo numero dal punto uno.
<BR>Il ciclo termina quando il risultato e\' zero.
<BR>Questo algoritmo ha sempre fine.
<BR>
<BR>Se il teorema precedente e\' vero, dire dopo quanto passi si otterra\' come rislultato il numero zero.
<BR>
<BR>es:
<BR>23 => 207 => 20 => 180 => 18 =>162 => 16 => etc...
problemino
Moderatore: tutor
io non ho trovato una dimostrazione valida x ricavare il numero di passi che ci vogliono, ma questo programma, avviabile con Pascal rende l\'idea di come vadano le cose...
<BR>
<BR>program xxx;
<BR>uses crt;
<BR>var a,n,i,x:longint;
<BR>Begin (*questo programma calcola dopo quanti passi si otterra come risultato il numero 0 da 1 fino al numero desiderato*)
<BR>clrscr;
<BR>Writeln(\'Il ciclo si interrompera al numero... (inserisci il valore)\');
<BR>Readln(x);
<BR>for i:=1 to x do
<BR> Begin
<BR> write(i,\' \');
<BR> a:=0;
<BR> n:=i;
<BR> Repeat
<BR> a:=a+1;
<BR> n:=n*9;
<BR> n:=n div 10;
<BR> until n=0;
<BR> Write (a);
<BR> if i mod 24=0 then
<BR> Begin
<BR> Writeln(\' premi Invio\');
<BR> Readln;
<BR> End
<BR> else
<BR> Writeln;
<BR> End;
<BR>Repeat until keypressed
<BR>End.
<BR>
<BR>program xxx;
<BR>uses crt;
<BR>var a,n,i,x:longint;
<BR>Begin (*questo programma calcola dopo quanti passi si otterra come risultato il numero 0 da 1 fino al numero desiderato*)
<BR>clrscr;
<BR>Writeln(\'Il ciclo si interrompera al numero... (inserisci il valore)\');
<BR>Readln(x);
<BR>for i:=1 to x do
<BR> Begin
<BR> write(i,\' \');
<BR> a:=0;
<BR> n:=i;
<BR> Repeat
<BR> a:=a+1;
<BR> n:=n*9;
<BR> n:=n div 10;
<BR> until n=0;
<BR> Write (a);
<BR> if i mod 24=0 then
<BR> Begin
<BR> Writeln(\' premi Invio\');
<BR> Readln;
<BR> End
<BR> else
<BR> Writeln;
<BR> End;
<BR>Repeat until keypressed
<BR>End.