Programma in C++

Messaggioda Tittyna » 26/01/2006, 14:06

So che magari ora non serve più a niente e che forse avete risolto privatamente...ma è meglio rendere pubblica la soluzione no?

#include <iostream.h>
#include <stdlib.h>

using namespace std;

int main()
{

int n;
cout<<"Inserire numero: ";
cin>>n;

if((n%2==0)&&(n!=1)) cout<<n/2<<"\n";
else if ((n%2!=0)&&(n!=1)) cout<<(n*3)+1<<"\n";
else return 0;

system("PAUSE");
return 0;
}
Titty
Tittyna
Starting Member
Starting Member
 
Messaggio: 1 di 5
Iscritto il: 26/01/2006, 13:44

Re: Programma in C++

Messaggioda superpunk733 » 27/01/2006, 10:46

Tittyna ha scritto:So che magari ora non serve più a niente e che forse avete risolto privatamente...ma è meglio rendere pubblica la soluzione no?

#include <iostream.h>
#include <stdlib.h>

return 0;
}


è normale che questo programma non funzioni a tutti xke le "vecchie" librerie d c++ sono state sostituite da altre con i nuovi compilatori: ora <iostream.h> è semplicemente <iostream> e <math.h> ora è <cmath> ;
Avatar utente
superpunk733
Junior Member
Junior Member
 
Messaggio: 2 di 419
Iscritto il: 27/01/2006, 10:35

Messaggioda Tittyna » 03/02/2006, 10:10

Titty
Tittyna
Starting Member
Starting Member
 
Messaggio: 2 di 5
Iscritto il: 26/01/2006, 13:44

Messaggioda Res » 14/02/2006, 23:16

Se non ho capito male il processo è ricorsivo ed N si dovrebbe assottigliare sino a diventare 1.
Se così è bisognerebbe dimostarre che qualsiaisi N intero converge ad 1, altrimenti bisogna mettere un trap per mouse o tatiera per schiodarlo se si inlooppa.
Avatar utente
Res
Starting Member
Starting Member
 
Messaggio: 6 di 49
Iscritto il: 14/02/2006, 18:45

Messaggioda lorven » 14/02/2006, 23:28

Converge sempre a 1, per la nota "congettura di Syracuse" o di Collatz.
http://it.wikipedia.org/wiki/Congettura_di_Collatz
Un giorno senza sorriso è un giorno perso.
Charlie Chaplin
Avatar utente
lorven
Junior Member
Junior Member
 
Messaggio: 87 di 369
Iscritto il: 06/12/2005, 20:55

Messaggioda Res » 14/02/2006, 23:43

OK, pronti !

do
input n# ' input numero intero
n#=abs(n#) ' forza in posiitivo
if n#=0 then exit do ' esce se è zero

while n>1

if n mod(2)=0 then
n=n/2
else
n=n*3+1
end if

wend

loop

end
Avatar utente
Res
Starting Member
Starting Member
 
Messaggio: 8 di 49
Iscritto il: 14/02/2006, 18:45

Precedente

Torna a Informatica

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite