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 函数,我们可以方便地统计给定区间内吉利数的个数。这篇文章展示了如何使用循环、条件判断等基本编程技巧来解决实际问题。

C++ 统计吉利数 - 算法题解

原文地址: https://www.cveoy.top/t/topic/qohT 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录