이 튜토리얼에서는 문자열 형식의 주어진 큰 숫자가 12로 나누어 떨어지는지 여부를 확인하는 프로그램을 작성할 것입니다.
우리는 이 문제를 풀기 위해 약간의 수학을 사용할 것입니다. 숫자가 3과 4의 배수이면 12의 배수가 됩니다.
숫자의 합이 3의 배수이면 3의 배수입니다.
숫자의 마지막 두 자리가 4의 배수이면 4의 배수입니다.
위의 내용을 활용하여 프로그램을 완성하겠습니다.
예시
코드를 봅시다.
#include <bits/stdc++.h>
using namespace std;
bool isNumberDivisibleBy12(string num) {
if (num.length() >= 3) {
int last_digit = (int)num[num.length() - 1];
if (last_digit % 2 != 0) {
return 0;
}
int second_last_digit = (int)num[num.length() - 2];
int sum = 0;
for (int i = 0; i < num.length(); i++) {
sum += num[i];
}
return (sum % 3 == 0 && (second_last_digit * 10 + last_digit) % 4 == 0);
}
else {
int number_as_int = stoi(num);
return number_as_int % 12 == 0;
}
}
int main() {
string num = "1212121212121212121212121212";
if (isNumberDivisibleBy12(num)) {
cout << "Yes" << endl;
}
else {
cout << "No" << endl;
}
return 0;
} 출력
위의 프로그램을 실행하면 다음과 같은 결과를 얻을 수 있습니다.
Yes
결론
튜토리얼에서 질문이 있는 경우 댓글 섹션에 언급하세요.