Duy Đức Anh Nguyễn

BÀI 1. BIẾN ĐỔI SỐ
An có một số nguyên dương n, bạn ấy vừa nghĩ ra một thuật toán mới để biến đổi số
n về giá trị 1. Một phép biến đổi số n được thực hiện như sau:
- n = n div 2 nếu n là số chẵn
- n = 3n + 1 nếu n là số lẻ
Phép biến đổi được lặp lại cho đến khi n = 1.
Ví dụ: n = 13: các phép biến đổi lần lượt được thực hiện như sau:
13  40  20  10  5  16  8  4  2  1

An muốn biết với số nguyên dương n cho trước, cần thực hiện bao nhiêu bước biến
đổi để n nhận giá trị bằng 1.
Em hãy lập trình trả lời giúp An câu hỏi của bạn ấy!
INPUT

 Một dòng duy nhất chứa số nguyên dương n (1 ≤ n ≤ 1000)

OUTPUT
 Một dòng duy nhất chứa kết quả tìm được.
Ví dụ:

INPUT OUTPUT
13 9

Đinh Duy Linh Bùi
15 tháng 4 2021 lúc 14:44

tự làm đi dễ mà:)))))

Bình luận (3)
Bùi Anh Tuấn
15 tháng 4 2021 lúc 19:48

mấy bài này bro lấy đâu vậy chứ giống 100% đề thi thử cấp tỉnh của em quá

Bình luận (0)
Nguyễn Lê Phước Thịnh
15 tháng 4 2021 lúc 20:33

const fi='input.inp'

fo='output.out'

var f1,f2:text;

n,dem:integer;

begin

assign(f1,fi); reset(f1);

assign(f2,fo); rewrite(f2);

readln(f1,n);

dem:=0;

repeat

  if n mod 2=0 then

  begin

n:=n div 2;

inc(dem);

end

else

begin 

n:=3*n+1;

dem:=dem+1;

end;

until n=1;

writeln(f2,dem);

close(f1);

close(f2);

end.

Bình luận (0)

Các câu hỏi tương tự
Hải Trần
Xem chi tiết
Nhật Minh Lê
Xem chi tiết
Duy Đức Anh Nguyễn
Xem chi tiết
Hello1234
Xem chi tiết
Hello1234
Xem chi tiết
Hello1234
Xem chi tiết
Hello1234
Xem chi tiết
Quỳnh Hoa
Xem chi tiết
NGuyễn Tuấn
Xem chi tiết