Informatică, întrebare adresată de victorzaharia15, 9 ani în urmă

Fie număr natural n. Acestuia i se aplică în mod repetat următoarele transformări:

dacă n este par, devine n/2
dacă n este impar, devine 3*n+1
În 1937 matematicianul Lothar Collatz a formulat următoarea conjectură: pentru orice număr natural, în urma transformărilor numărul devine 1.

De exemplu, pentru n=6 se obține șirul: 6 3 10 5 16 8 4 2 1, șir care are 9 termeni.

Pentru un n dat, determinați numărul de termeni din șirul de transformări după regula de mai sus.

Rezolvare

Răspunsuri la întrebare

Răspuns de 12numaieu45
2
#include<iostream.h>
int n, q=1;
void main()
{
cout<<"n="; cin>>n;
cout<<n<<" ";
while(n!=1)
{
if(n%2==0)
{
n=n/2;
cout<<n<<" ";
q++;
}
else
{n=3*n+1;
cout<<n<<" ";
q++;
} }
cout<<endl;
cout<<"Are "<<q<<" termeni.";
}


12numaieu45: Coroana? :D
Alte întrebări interesante