이 튜토리얼에서는 문자열 형식의 주어진 큰 숫자가 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
결론
튜토리얼에서 질문이 있는 경우 댓글 섹션에 언급하세요.