Editorial for C Bài 6.C3: Tái chế
Remember to use this editorial only when stuck, and not to copy-paste code from it. Please be respectful to the problem author and editorialist.
Submitting an official solution before solving the problem yourself is a bannable offence.
Submitting an official solution before solving the problem yourself is a bannable offence.
Author:
Lời giải chi tiết
Ý tưởng: Mỗi khi đốt hết nến ở một thời điểm nhất định, ta sẽ tính được bao nhiêu cây nến được tạo ra từ những cây nến qua sử dụng, và còn bao nhiêu cây nến dùng xong mà chưa đủ để tạo cây mới ta sẽ cộng dồn vào lần đốt hết nến tiếp theo. Cuối cùng số nến đã qua sử dụng phải nhỏ hơn số nến dùng xong cần có để tạo ra cái mới.
Các bước giải:
- Bước 1: Khai báo và nhập vào 2 số nguyên \(n, m\). Sau đó khởi tạo biến
count
để đếm số giờ có thể thắp sáng bằng nến, đặt giá trị là 0; và biếntmp
để lưu những cây nến qua sử dụng mà chưa đủ để tạo cây nến mới, đặt giá trị là 0. - Bước 2: Sử dụng vòng lặp
while
với điều kiện kết thúc là \(n \geq 0\). Theo đó, với mỗi vòng, ta cộngcount
thêm một giá trị bằng số nến hiện tại (là \(n\)). Sau đó ta tính được số nến được tạo ra từ cây nến cũ (lấy \(n = (n+\)tmp
\() / m\)) và số nến cũ chưa thể tạo thành nến mới (tmp
\(= (n+\)tmp
\()\)% \(m\)). - Bước 3: Sau vòng lặp tức là hết nến để đốt. In ra màn hình giá trị cuối cùng của
count
.
Đăng ký khóa học: https://www.facebook.com/clblaptrinhfullhouse
SĐT liên hệ: 0372229686
Youtube: CLB Lập Trình Full House
Fullhouse dev đồng hành trên từng dòng code
Comments