Lập trình Scratch tính độ bền của một số nguyên không âm

Hôm nay có một em học sinh gửi cho mình bài toán sau:

Năm 1973, nhà Toán học Neil Sloan đưa ra khái niệm độ bền của một số nguyên không âm N như sau: Nếu N có một chữ số thì độ bền của N bằng 0. Nếu N có từ 2 chữ số trở lên thì độ bền của N bằng độ bền của số nguyên là tích các chữ số của N cộng 1

Yêu cầu: Viết chương trình tính độ bền của một số nguyên dương n.

Thoạt đầu đọc nghe hơi khó hiểu, sau một hồi tìm hiểu thì tóm lại như sau:

VD:Tính độ bền của số 189

Độ bền (189)

= Độ bền (72) +1 (Vì 1*8*9 = 72)

= Độ bền (14) +1 +1 (Vì 7*2 = 14)

= Độ bền (4) +1 +1 +1 (Vì 1*4 =4)

= 0 +1+1+1 = 3 (vì 4 có độ bền là 0)

Chương trình tính độ bền của một số nguyên không âm trong Pascal

Var KQ, i, n, tem:longint;
Begin
write (‘nhap vao mot so tu nhien n’); readln(n);
KQ:=0; tem:=n;
while tem >=9 do
begin
i:=1;
while tem <> 0 do
begin
i:=i*(tem mod 10);
i:=i div 10;
end;
tem:=i;
KQ:=KQ+1;
end;

Write(‘do ben cua’,n,’la: ‘,KQ’);

end.

Chương trình tính độ bền của một số tự nhiên trong Scratch

Giải thích thêm về chương trình:

Sau khi người dùng nhập vào một số tự nhiên  thì biết n sẽ lưu số nhập vào đó và “answer” vẫn giữ lại cho ta số đó trong suốt chương trình

Đoạn chương trình (1):

  • Đặt i bằng 1
  • Lặp cho tới khi n =0
    – Đặt i bằng i * (n mod 10)
    – Đặt n bằng làm tròn xuống (n :10)

dùng để nhân dồn tất cả các chữ số của n và kết quả lưu vào biến  i

Đoạn chương trình:

  • Lặp cho tới khi n < 9
    – Đoạn chương trình (1)
    – Đặt n bằng i
    – Tăng kết quả lên 1

Lặp lại quá trình thay thế n bằng tích các chữ số của n và đồng thời cộng thêm 1 vào biết “kết quả”

Bình luận:

Tác giả lấy từ “độ bền” rất hợp lý ý là nếu cứ lấy tất cả các chữ số của một số tự nhiên nhân lại với nhau được một số mới rồi lại lặp lại như vậy với số mới cứ như thế cho đến khi nào kết quả là một số có 1 chữ số là dừng. Còn cái khái niệm “độ bền” chẳng qua là đếm số lần lặp lại mà thôi.

Từ bài toán này mình nảy ra một bài toán bói tình yêu vui các bạn hãy cùng xem và dùng Scratch để giải quyết xem thế nào nha.

 

Trả lời

Email của bạn sẽ không được hiển thị công khai.

Back to top button