이 튜토리얼에서는 숫자를 주어진 숫자로 나눌 수 있는 두 부분으로 나누는 프로그램을 작성할 것입니다.
문자열 형식의 숫자와 두 개의 다른 정수를 제공했습니다. 프로그램은 첫 번째 부분을 첫 번째 숫자로 나누고 두 번째 부분을 두 번째 부분으로 나눌 수 있도록 주어진 숫자를 두 부분으로 나눌 수 있는지 여부를 반환해야 합니다.
문제를 해결하는 단계를 살펴보겠습니다.
-
나누기에 대한 숫자와 두 개의 정수를 초기화합니다.
-
첫 번째 부분이 첫 번째 숫자로 나눌 수 있을 때까지 숫자를 반복합니다.
-
각 문자를 숫자로 변환하여 숫자를 만듭니다.
-
첫 번째 숫자로 나누어 떨어지면 루프를 끊습니다.
-
이제 숫자의 두 번째 부분에 대해 다음 인덱스에서 반복합니다.
-
첫 번째 부분에서와 같이 숫자를 만드십시오.
-
두 번째 부분이 두 번째 숫자로 나누어 떨어지는지 확인하십시오.
-
첫 번째 부분과 두 번째 부분이 각각 첫 번째와 두 번째 숫자로 나눌 수 있는 경우 인쇄하고 그렇지 않으면 "불가능"을 인쇄합니다.
예시
코드를 봅시다.
#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; }
출력
위의 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다.
125 333
결론
튜토리얼에서 질문이 있는 경우 댓글 섹션에 언급하세요.