lập trình bằng ngôn ngữ c++: Cho 3 số nguyên dương a, b, n. Hãy tìm số nguyên dương k nhỏ nhất nhưng không nhỏ hơn n sao cho k chia hết cho a và k không chia hết cho b. Nếu không có số nguyên dương k n...

thumb up 0
thumb down
Trả lời câu hỏi của mocchi

Làm sao để có câu trả lời hay nhất?

  • Luôn có GIẢI THÍCH các bước giải
  • Không copy câu trả lời của Timi
  • Không sao chép trên mạng
  • Không spam câu trả lời để nhận điểm
  • Spam sẽ bị khóa tài khoản
CÂU TRẢ LỜI
avatar
Timi

19/11/2023

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 trên, ta có thể sử dụng vòng lặp for để duyệt qua các số từ n đến 10^16. Trong mỗi lần lặp, ta kiểm tra xem số hiện tại có chia hết cho a nhưng không chia hết cho b bằng cách sử dụng toán tử % để lấy phần dư của phép chia số hiện tại cho a và b. Nếu phần dư khác 0 và số hiện tại không nhỏ hơn n, ta gán k = số hiện tại và thoát khỏi vòng lặp. Nếu sau khi kết thúc vòng lặp mà không tìm được số k thỏa mãn, ta gán k = -1. Dưới đây là mã giả của thuật toán trên: ``` int a, b, n; cin >> a >> b >> n; int k = -1; for (int i = n; i <= 10000000000000000; i++) { if (i % a == 0 && i % b != 0) { k = i; break; } } cout << k << endl; ``` Lưu ý: Do giới hạn của ngôn ngữ C++ là 10^9, nên trong mã giả trên, ta đã giới hạn số lần lặp của vòng lặp for là 10000000000000000.
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
avatar
level icon
daothicamtien

19/11/2023

Đợi chút

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
avatar
level icon
Disnney

19/11/2023

ha tuan bi

Dưới đây là một đoạn code C++ để giải bài toán trên:


```cpp

#include


using namespace std;


long long findK(long long a, long long b, long long n) {

for (long long k = n; k <= a * n; k++) {

if (k % a == 0 && k % b != 0) {

return k;

}

}

return -1;

}


int main() {

long long a, b, n;

cin >> a >> b >> n;


long long k = findK(a, b, n);

cout << k << endl;


return 0;

}

```


Trong đoạn code trên, hàm `findK` sẽ tìm số nguyên dương k nhỏ nhất thỏa mãn yêu cầu đề bài. Nếu không tìm được, hàm sẽ trả về -1. Trong hàm `main`, ta nhập vào 3 số a, b, n từ input, sau đó gọi hàm `findK` và in ra kết quả.

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

Ta có 2 lệnh sau: x:= 8; If x>5 then x := x +1; Giá trị của x là bao nhiêu? A. 5 B. 9 C. 8 D. 6
<p>Trình bày nhiều các bước thu nhập ,chọn lọc , xử lí và hệ thống hóa thông tin</p>
Ngôn ngữ nào gần với ngôn ngữ tự nhiên nhất? A. Ngôn ngữ bậc cao. B. Ngôn ngữ máy. C. Hợp ngữ. D. Cả ba phương án đều sai.
Ngôn ngữ Python được ra mắt lần đầu vào năm nào? A. 1995. B. 1972. C. 1981. D. 1991.
Ai đã phát triển Ngôn ngữ lập trình Python? A. Wick van Rossum. B. Rasmus Lerdorf. C. Guido van Rossum. D. Niene Stom.
Đặt câu hỏi về bài tập của bạn
Lưu ý: • Đặt câu hỏi đủ thông tin, có ý nghĩa • Không gian lận điểm • Không đặt câu hỏi có chứa nội dung phản cảm
Báo cáo câu hỏi
    Xác nhận
    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