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
0
#include <iostream>
using namespace std;
int main ()
{
long long int n;
int cnt = 1;
cin >> n;
while(n != 1)
{
cnt ++;
if(n % 2 == 0)
n /= 2;
else
n = 3 * n + 1;
//cout << n << " ";
}
cout << cnt;
return 0;
}
Asta e solutia oficiala.
using namespace std;
int main ()
{
long long int n;
int cnt = 1;
cin >> n;
while(n != 1)
{
cnt ++;
if(n % 2 == 0)
n /= 2;
else
n = 3 * n + 1;
//cout << n << " ";
}
cout << cnt;
return 0;
}
Asta e solutia oficiala.
Răspuns de
1
#include <iostream>
using namespace std;
long long nr,n,t;
int main()
{
cin>>n;
t=n;
while(t!=1)
{
if(t%2==0) t=t/2;
else t=t*3+1;
nr++;
}
cout<<nr+1;
return 0;
}
using namespace std;
long long nr,n,t;
int main()
{
cin>>n;
t=n;
while(t!=1)
{
if(t%2==0) t=t/2;
else t=t*3+1;
nr++;
}
cout<<nr+1;
return 0;
}
Alte întrebări interesante
Engleza,
8 ani în urmă
Chimie,
8 ani în urmă
Chimie,
8 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă
Engleza,
9 ani în urmă
Limba română,
9 ani în urmă