Informatică, întrebare adresată de reycostel10, 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.

Răspunsuri la întrebare

Răspuns de AdiHero
17
#include <iostream>
using namespace std;

int main()
{
    int n,nrt=1;
    cin>>n;
    while(n!=1)
    {
        nrt++;
        if(n%2==0) n/=2;
        else n=3*n+1;
    }
    cout<<nrt;
    return 0;
}


Alte întrebări interesante