Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ตรวจสอบว่าตัวเลขเกิดจากการต่อกันของ 1, 14 หรือ 144 เฉพาะใน C++ . หรือไม่


ที่นี่เราจะเห็นปัญหาหนึ่งที่บอกได้ว่าสตริงหรือตัวเลขเป็นการต่อกันของ 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