在 C++ 中检查数字是否仅由 1、14 或 144 连接而成

c++server side programmingprogramming

这里我们将看到一个问题,它可以判断字符串或​​数字是否仅由 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

相关文章