0.tính chu kỳ 3N+1


Submit solution

Points: 1 (partial)
Time limit: 1.0s
Memory limit: 98M

Author:
Problem type
Allowed languages
Ada, Assembly, Awk, C, C++, C11, CLANG, CLANGX, Classical, COBOL, Coffee, CSC, D lang, DART, F95, FORTH, Fortrn, GAS32, GO, Haskell, Itercal, Java, kotlin, LEAN, LISP, LUA, MONOVB, Nasm, OCAML, Pascal, Perl, php, PIKE, prolog, Pypy, Python, Ruby 2, RUST, Scala, SCM, SED, SWIFT, TCL, TUR, V8JS, VB, ZIG

Ta sẽ phân tích một thuật toán như sau:

1. Nhập N

2. in giá trị N
3.   if    n    = 1    then STOP
4.   if    n    is odd then n  <-  3n+1
5.   else n <- n/2
6. Goto 2

Với đầu vào 22, chuỗi số liệu sau đây sẽ được in

22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1

Có giả định rằng thuật toán ở trên sẽ dừng (khi 1 được in) với bất kỳ giá trị nguyên nào ở đầu vào. Mặc dù tính đơn giản của thuật toán, nhưng không rõ liệu giả thuyết này có đúng hay không. Nó đã được xác minh cho tất cả các số nguyên 0<N<1000 và lớn hơn.

Với một đầu và N, có thể xác định số lượng các số được in ra (bao gồm cả số 1). Giá trị này được gọi là chiều dài chu kỳ (cycle-length) của N. Trong ví dụ trên, chiều dài chu kỳ của 22 là 16.

Số liệu đầu vào là số nguyên i >=0

Hãy in ra chiều dài chu kỳ và chuỗi số ứng với số nhập vào. Các số phải được cách nhau bởi một dấu cách

VÍ DỤ

INPUT

22

Output

16 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1


Comments

There are no comments at the moment.