在 C++ 中檢查一個數是否僅由 1、14 或 144 連線形成


在這裡我們將看到一個問題,可以判斷一個字串或數字是否僅由 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

更新於:2019 年 10 月 21 日

154 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告