在 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
广告