Trong hướng dẫn này, chúng ta sẽ viết một chương trình chia một số thành hai phần chia hết cho các số đã cho.
Chúng tôi đã đưa ra một số ở định dạng chuỗi và hai số nguyên khác. Chương trình sẽ trả về liệu có thể chia số đã cho thành hai phần sao cho phần đầu tiên chia hết cho số đầu tiên và phần thứ hai chia hết cho phần thứ hai hay không.
Hãy xem các bước để giải quyết vấn đề.
-
Khởi tạo số và hai số nguyên cho phép chia.
-
Lặp lại số cho đến khi phần đầu tiên chia hết cho số đầu tiên.
-
Hình thành số bằng cách chuyển mỗi ký tự thành một chữ số.
-
Ngắt vòng lặp khi nó chia hết cho số đầu tiên.
-
Bây giờ, hãy lặp lại từ chỉ mục tiếp theo cho phần thứ hai của số.
-
Lập số như bạn làm trong phần đầu tiên.
-
Kiểm tra xem phần thứ hai có chia hết cho số thứ hai hay không.
-
Nếu phần đầu tiên và phần thứ hai chia hết cho số đầu tiên và số thứ hai tương ứng, thì in chúng bằng cách khác in "Không thể".
Ví dụ
Hãy xem mã.
#include <bits/stdc++.h> using namespace std; void checkTheDivisabilityOfPrefixAndSuffix(string num, int prefix_dividend, int suffix_dividend) { int N = num.length(); bool is_prefix_divisable = false, is_suffix_divisable = false; int index = 0; int prefix = num[index] - '0'; while (index < N) { if (prefix % prefix_dividend == 0) { is_prefix_divisable = true; break; } prefix = prefix * 10 + (num[++index] - '0'); } int suffix = num[++index] - '0'; while (index < N - 1) { suffix = suffix * 10 + (num[++index] - '0'); } cout << suffix << endl; if (suffix % suffix_dividend == 0) { is_suffix_divisable = true; } if (is_prefix_divisable && is_suffix_divisable) { cout << prefix << " " << suffix << endl; } else { cout << "Not possible" << endl; } } int main() { string number = "125333"; int prefix_dividend = 5; int suffix_dividend = 3; checkTheDivisabilityOfPrefixAndSuffix(number, prefix_dividend, suffix_dividend); return 0; }
Đầu ra
Nếu bạn chạy đoạn mã trên, thì bạn sẽ nhận được kết quả sau.
125 333
Kết luận
Nếu bạn có bất kỳ câu hỏi nào trong hướng dẫn, hãy đề cập đến chúng trong phần bình luận.