Linh muốn đi mua hoa để về cắm vào hình to nhà mình nhân dịp sinh nhật mẹ. Biết bình hoa nhà linh cẩm được n bông hoa. Linh ra chợ mua hoa nhưng người ta chỉ bán theo m bó, mỗi bó có k bông hoa, hỏi bạ...

thumb up 0
thumb down
Trả lời câu hỏi của Lamourahlabontes
  • Câu trả lời phải chính xác, đầy đủ dựa trên kiến thức xác thực:
    • ✔ Đối với câu hỏi trắc nghiệm: Đưa đáp án lựa chọn + giải thích lý do chọn đáp án.
    • ✔ Đối với câu hỏi tự luận: Đưa lời giải và đáp án cho câu hỏi.
    • ✔ Đối với câu hỏi trả lời ngắn: Đưa ra đáp án + giải thích lý do.
    • ✔ Chấp nhận sử dụng ảnh do thành viên viết tay, ảnh cần rõ nét, không bị mờ, vỡ ảnh.
  • Sử dụng ngôn ngữ rõ ràng, dễ hiểu.
  • Tránh đưa ra các ý kiến cá nhân mang tính chất chủ quan.
  • Nếu sử dụng thông tin từ nguồn khác, phải trích dẫn nguồn đầy đủ và chính xác.
  • Tuyệt đối không được sao chép các thông tin từ các trang khác, từ AI hoặc chatGPT.
CÂU TRẢ LỜI
avatar
Timi

28/07/2025

Trợ lý học tập AI - Câu trả lời này chỉ mang tính tham khảo
Để giải bài toán này, ta cần kiểm tra xem có tồn tại số nguyên x sao cho: x * m * k = n Trong đó: - n là số bông hoa cần mua, - m là số bó hoa phải mua trong 1 lượt, - k là số bông hoa trong 1 bó. Nếu tồn tại x nguyên dương thỏa mãn thì in "YES", ngược lại in "NO". Tuy nhiên, vì m và k là cố định (m bó, mỗi bó k bông), số hoa mua được trong 1 lần mua duy nhất là bội số của m*k. Do đó, ta chỉ cần kiểm tra: n có chia hết cho (m * k) hay không. Nếu chia hết thì in "YES", không thì in "NO". Dưới đây là code C++ minh họa: ```cpp #include <iostream> using namespace std; int main() { unsigned long long n, m, k; cin >> n >> m >> k; // Kiểm tra chia hết unsigned __int128 mk = (unsigned __int128)m * k; // để tránh tràn số khi m,k lớn if (mk == 0) { cout << "NO" << endl; return 0; } // Vì n, m, k có thể rất lớn (<= 10^18), ta cần kiểm tra n % (m*k) == 0 // Nhưng n cũng <= 10^18 nên có thể dùng unsigned long long để lưu n // Cách đơn giản: kiểm tra n % (m*k) == 0 // Nhưng m*k có thể vượt quá 64 bit, nên ta cần xử lý cẩn thận. // Cách xử lý: // Nếu m*k > n thì chắc chắn không chia hết // Nếu m*k <= n thì kiểm tra n % (m*k) == 0 // Vì m*k có thể vượt quá 64 bit, ta so sánh m*k với n bằng cách: // Nếu m > n/k thì m*k > n if (k == 0) { cout << "NO" << endl; return 0; } if (m > n / k) { cout << "NO" << endl; return 0; } unsigned long long mk64 = m * k; if (n % mk64 == 0) { cout << "YES" << endl; } else { cout << "NO" << endl; } return 0; } ``` Giải thích: - Đầu tiên kiểm tra m*k có vượt quá n không để tránh tràn số. - Nếu m*k > n thì không thể mua đủ số hoa. - Nếu m*k <= n thì kiểm tra n % (m*k) == 0 để xác định có thể mua đúng số hoa hay không. Bạn có thể chạy thử với các input mẫu: Input: ``` 100 5 20 ``` Output: ``` YES ``` Input: ``` 70 4 15 ``` Output: ``` NO ``` Nếu bạn cần mình giải thích thêm hoặc giúp viết code theo cách khác, bạn cứ hỏi nhé!
Hãy giúp mọi người biết câu trả lời này thế nào?
0/5 (0 đánh giá)
thumb up 0
thumb down
0 bình luận
Bình luận

Nếu bạn muốn hỏi bài tập

Các câu hỏi của bạn luôn được giải đáp dưới 10 phút

Ảnh ads

CÂU HỎI LIÊN QUAN

FQA.vn Nền tảng kết nối cộng đồng hỗ trợ giải bài tập học sinh trong khối K12. Sản phẩm được phát triển bởi CÔNG TY TNHH CÔNG NGHỆ GIA ĐÌNH (FTECH CO., LTD)
Điện thoại: 1900636019 Email: info@fqa.vn
Location Địa chỉ: Số 21 Ngõ Giếng, Phố Đông Các, Phường Ô Chợ Dừa, Quận Đống Đa, Thành phố Hà Nội, Việt Nam.
Tải ứng dụng FQA
Người chịu trách nhiệm quản lý nội dung: Nguyễn Tuấn Quang Giấy phép thiết lập MXH số 07/GP-BTTTT do Bộ Thông tin và Truyền thông cấp ngày 05/01/2024
Copyright © 2023 fqa.vn All Rights Reserved