C++ 统计吉利数 - 算法题解
C++ 统计吉利数 - 算法题解
题目描述
辰辰称一个数字是吉利的,当且仅当其满足以下性质:
- 不存在 4
- 相邻两位数之和≠4
例如, 432,133 就不是吉利数,而 666 就是吉利数。
求 L~R 中有多少个吉利数。
输入
1 行 2 个整数 L,R。
输出
1 个整数表示 L~R 中吉利数的个数。
样例
输入数据 1 3 15 输出数据 1 10
3,5,6,7,8,9,10,11,12,15 是吉利数, 而 4,13,14 不是吉利数。
数据范围
1≤L≤R≤1e18 |L-R|≤5×1e6
C++ 代码实现
#include <iostream>
using namespace std;
bool isLucky(int num) {
while(num > 0) {
int digit = num % 10;
if(digit == 4) {
return false;
}
num /= 10;
}
return true;
}
int countLuckyNumbers(long long L, long long R) {
int count = 0;
for(long long i = L; i <= R; i++) {
if(isLucky(i)) {
count++;
}
}
return count;
}
int main() {
long long L, R;
cin >> L >> R;
int result = countLuckyNumbers(L, R);
cout << result << endl;
return 0;
}
代码解释
isLucky(int num)函数用于判断一个数字是否是吉利数。函数首先使用循环遍历数字的每一位,判断是否存在数字 4。如果存在,则返回false,否则继续判断相邻两位数之和是否为 4。如果所有条件都满足,则返回true,表示该数字是吉利数。countLuckyNumbers(long long L, long long R)函数用于统计给定区间内吉利数的个数。函数使用循环遍历区间内所有数字,并调用isLucky函数判断每个数字是否为吉利数。如果是,则计数器加 1。最后返回计数器的值。main函数用于读取输入数据,调用countLuckyNumbers函数进行统计,并输出结果。
总结
本文介绍了如何使用 C++ 代码解决统计吉利数的问题。通过 isLucky 函数和 countLuckyNumbers 函数,我们可以方便地统计给定区间内吉利数的个数。这篇文章展示了如何使用循环、条件判断等基本编程技巧来解决实际问题。
原文地址: https://www.cveoy.top/t/topic/qohT 著作权归作者所有。请勿转载和采集!