Cho dãy số A gồm N số A1...An.Hãy cho biết dãy có bao nhiêu bội số của 3 a)Xác định input, output b)Nêu ý tưởng c)Viết thuật toán dạng liệt kê d)Hãy mô phỏng theo thuật toán trên với bộ dữ liệu sau: N=6, A={8,-9,7,2,25,6}

1 câu trả lời

* Xác định bài toán :

- Input : số n và dãy a1, a2, ... , an

- Output : số lượng số hạng là bội của 3

* Ý tưởng :

- Khởi tạo giá trị biến d = 0

- Lần lượt giá tị i chạy từ 1 đến n + 1

- Nếu a[i] chia hết cho 3 thì d ← d + 1

* Viết thuật toán :

- Bước 1 : nhập số n và dãy số hạn a1, a2, ... , an

- Bước 2 : i ← 1, d ← 0;

- Bước 3 : nếu i > n thì đưa ra giá trị d rồi kết thúc

- Bước 4 : nếu a[i] chia hết cho 3 thì d ← d + 1

- Bước 5 : i ← i + 1 quay lại bước 3

* Mô phỏng :

+ i = 1 ⇒ a[1] = 8 không chia hết cho 3

+ i = 2 ⇒ a[2] = -9 chia hết cho 3 ⇒ d = 0 + 1 = 1

+ i = 3 ⇒ a[3] = 7 không chia hết cho 3

+ i = 4 ⇒ a[4] = 2 không chia hết cho 3

+ i = 5 ⇒ a[5] = 25 không chia hết cho 3

+ i = 6 ⇒ a[6] = 6 chia hết cho 3 ⇒ d = 1 + 1 = 2

+ i = 7 => i > n, kết thúc thuật toán

⇒ Giá trị d = 2

Câu hỏi trong lớp Xem thêm