Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Kiểm tra số hình thành từ nối 1, 14 hoặc 144 trong C++


Kiểm tra một số (hoặc chuỗi) có được tạo thành từ việc nối các số 1, 14, 144 hay không. Ví dụ "111411441" hợp lệ, "144414" không hợp lệ.

Cách làm: từ cuối số, lấy 3 chữ số, 2 chữ số, 1 chữ số kiểm tra xem có khớp 144, 14, 1 không. Nếu khớp, cắt bỏ đoạn đó (chia cho 1000, 100, 10), lặp lại cho đến khi hết số.

Ví dụ

#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";
    }
}

Kết quả

Valid number