题解
【基础】奇怪的车牌号
1 条题解
-
0
#include <bits/stdc++.h> using namespace std; // 判断一个四位数是否是递增的自然数 bool isIncreasing(int num) { vector<int> digits; for (int i = 0; i < 4; ++i) { digits.push_back(num % 10); num /= 10; } reverse(digits.begin(), digits.end()); for (int i = 1; i < 4; ++i) { if (digits[i] != digits[i - 1] + 1) { return false; } } return true; } // 计算一个八位数各位数字之和 int digitSum(int num) { int sum = 0; while (num > 0) { sum += num % 10; num /= 10; } return sum; } // 判断一个数是否是完全平方数 bool isPerfectSquare(int num) { int root = sqrt(num); return root * root == num; } int main() { int count = 0; // 枚举前四位 for (int front = 123; front <= 6789; ++front) { if (isIncreasing(front)) { // 枚举后四位 for (int back = 123; back <= 9876; ++back) { if (isIncreasing(back)) { int licensePlate = front * 10000 + back; if (isPerfectSquare(digitSum(licensePlate))) { ++count; } } } } } cout << count << endl; return 0; }
- 1