여기서 우리는 문자열 또는 숫자가 1, 14 또는 144의 연결인지 여부를 알 수 있는 한 가지 문제를 볼 것입니다. 문자열이 "111411441"이라고 가정하면 이것은 유효하지만 "144414"는 유효하지 않습니다.
작업은 간단합니다. 마지막에서 한 자리, 두 자리 및 세 자리 숫자를 가져와서 이 세 가지(1, 14 및 144) 중 하나와 일치하는지 확인해야 합니다. 일치하는 항목이 하나 있으면 나누기 번호를 입력하고 전체 번호가 소진되지 않을 때까지 이 과정을 반복합니다.
예시
#include <iostream> #include <cmath> using namespace std; bool checkNumber(long long number) { int n = number; while (n > 0) { if (n % 1000 == 144) n /= 1000; else if (n % 100 == 14) n /= 100; else if (n % 10 == 1) n /= 10; else { return false; } } return true; } int main() { long long n = 111411441; if(checkNumber(n)){ cout << "Valid number"; } else { cout << "Invalid number"; } }
출력
Valid number