#654
Fie număr natural n. Acestuia i se aplică în mod repetat următoarele transformări:
n este par, devine n/2n 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.
| Problema | Collatz | Operații I/O |
tastatură/ecran
|
|---|---|---|---|
| Limita timp | 0.1 secunde | Limita memorie |
Total: 64 MB
/
Stivă 8 MB
|
| Id soluție | #64108701 | Utilizator | |
| Fișier | collatz.cpp | Dimensiune | 154 B |
| Data încărcării | 17 Aprilie 2026, 12:34 | Scor/rezultat | Eroare de compilare |
collatz.cpp: In function ‘int main()’: collatz.cpp:4:5: error: expected unqualified-id before ‘<<’ token 4 | {int<<n,c=0; | ^~ collatz.cpp:5:11: error: ‘n’ was not declared in this scope 5 | while(n>1) | ^ collatz.cpp:8:2: error: ‘c’ was not declared in this scope 8 | c++; | ^ collatz.cpp:9:2: error: ‘else’ without a previous ‘if’ 9 | else{n=3n+i; | ^~~~ collatz.cpp:9:9: error: unable to find numeric literal operator ‘operator""n’ 9 | else{n=3n+i; | ^~ collatz.cpp:9:9: note: use ‘-fext-numeric-literals’ to enable more built-in suffixes collatz.cpp:9:12: error: ‘i’ was not declared in this scope 9 | else{n=3n+i; | ^ collatz.cpp:11:8: error: ‘c’ was not declared in this scope 11 | cout>>c; | ^ collatz.cpp:11:10: error: expected ‘}’ at end of input 11 | cout>>c; | ^ collatz.cpp:4:1: note: to match this ‘{’ 4 | {int<<n,c=0; | ^
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema Collatz face parte din prima categorie. Soluția propusă de tine va fi evaluată astfel:
Suma punctajelor acordate pe testele utilizate pentru verificare este 100. Astfel, soluția ta poate obține cel mult 100 de puncte, caz în care se poate considera corectă.