Thuật toán tìm USCLN và BSCNN

2 1.8K 1
Thuật toán tìm USCLN và BSCNN

Đang tải... (xem toàn văn)

Thông tin tài liệu

Đây là cách hiểu của mình, ko phải phát biểu thuật toán. Thuật toán được trình bày ở dạng ngôn ngữ tự nhiên và có code demo, còn tính đúng đắn đã được Euclid chứng minh, khỏi bàn cãi. Thuật toán tìm ƯỚC SỐ CHUNG LỚN NHẤT của 2 số a và b: Cách 1 (trừ dần): Bước 1: so sánh a và b Nếu a > b: thì lấy a – b rồi gán cho a. Quay về bước 1 Nếu a < b: thì lấy b – a rồi gán cho b. Quay về bước 1 Nếu a = b: nhảy sang bước 2. Bước 2: USCLN là a hoặc b. Code demo:

Thuật toán tìm USCLN BSCNN +Đây cách hiểu mình, ko phải phát biểu thuật toán Thuật toán trình bày dạng ngôn ngữ tự nhiên có code demo, tính đắn Euclid chứng minh, khỏi bàn cãi Thuật toán tìm ƯỚC SỐ CHUNG LỚN NHẤT số a b: Cách (trừ dần): Bước 1: so sánh a b • Nếu a > b: lấy a – b gán cho a Quay bước • Nếu a < b: lấy b – a gán cho b Quay bước Nếu a = b: nhảy sang bước Bước 2: USCLN a b Code demo: • while (a != b) { if (a > b) a = a - b; else b = b - a; } return a; Lưu ý: code, cần gán a b vào biến tạm (ví dụ a’ b’) để khỏi làm thay đổi giá trị a b Cách (chia lấy dư – tối ưu hơn): Bước 1: so sánh a b • Nếu a>b: lấy a % b gán cho a Quay bước • Nếu a b) a = a % b; else b = b % a; } if (a == 0) return b; else return a; Thuật toán tìm BỘI SỐ CHUNG NHỎ NHẤT số a b: Quá đơn giản,^^: cần lấy a x b / USCLN( a, b) xong Code demo: BSCNN = a * b / USCLN (a, b);

Ngày đăng: 05/05/2016, 10:18

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan