Blog

Hưỡng dẫn tìm hiểu về số Amstrong – thuật toán minh họa bằng Pascal và Scratch

Tìm hiểu về số Amstrong – thuật toán minh họa bằng Pascal và Scratch

Có những số tự nhiên có những tính chất rất đẹp và thú vị, chẳn hạn các bạn thấy 153 = 13 + 53 + 33, số như vậy gọi là số Amstrong. Định nghĩa đầy đủ số Amstrong như sau: Số tự nhiên n gọi là Amstrong nếu nó bằng tổng lập phương các chữ số của nó, ta hãy tìm cách lập trình kiểm tra một số tự nhiên n (n < 2 tỉ) xem nó có phải là số Amstrong hay không bằng Pascal và Scratch nhé.

Thuật toán kiểm tra số Amstrong

Dựa vào định nghĩa số Amstrong ta có ngay cách kiểm tra, đó là tách lấy từng chữ số của số cần kiểm tra sao đó lập phương lên và cộng dồn lại, và để tách được từng chữ số của số nhập vào ta lại có thể sử dụng phép toán Div và mod.

Như vậy ta sẽ dùng một biến để lưu kết quả cộng dồn (S chẳng hạn) khởi động S = 0;

Lặp lại cho đến khi n = 0 (n là số tự nhiên cần kiểm tra) các thao tác sau:

  • Cộng dồn (n mod 10) lập phương vào S (Cộng dồn lập phương của chữ số cuối cùng)
  • Gán n bằng n div 10 (Cắt bỏ chữ số cuối cùng của n đi)

 

Chương trình kiểm tra số Amstrong trong Pascal

Dữ liệu vào file: Amstrong.inpDữ liệu ra file: Amstrong.out
Chứa số nYes (No)

code Pascal

Chương trình kiểm tra số Amstrong trong Scratch

Khi đã viết được thuật toán bằng Pascal thì việc kéo thả để tạo code trong Scratch hoàn toàn đơn giản phải không các bạn.

Các bạn hãy tạo một nhân vật, sau đó lập trình cho nhân vật theo các gợi ý sau:

  • Yêu cầu nhập vào một số
  • Tạo biến và lập trình theo thuật toán tương tự thuật toán viết bằng Pascal ở trên

Sau đó các bạn chạy thử nghiệm và so sánh kết quả xem thế nào nhé.

Nếu trong quá trình code có gì thắc mắc các bạn đừng ngần ngại comment phía dưới bài viết nhé, mặc dù mình rất bận nhưng cũng sẽ cố gắng chia sẻ cùng các bạn. Chúc các bạn học tốt!

 

Đỗ Thủy

Tôi là Đỗ Thủy đam mê sáng tạo viết Blog hàng ngày là những công việc mà tôi đang làm nó thực sự là những gì tôi yêu thích hãy theo dõi tôi để có những kiến thức bổ ích về xã hội ,cộng đồng và học tập.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Back to top button