蓝桥杯备考随手记: practise01

问题描述:

小明对数位中含有 2、0、1、9 的数字很感兴趣,在 1 到 40 中这样的数包 括 1、2、9、10 至 32、39 和 40,共 28 个,他们的和是 574。

请问,在 1 到 2019 中,所有这样的数的和是多少?

思路分析:

使用循环遍历1到2019之间的每个数,然后判断每个数的数位中是否包含2、0、1、9这些数字。若包含,则将该数字加入总和中。

有两种实现方法:

  • 数位分解
  • 字符串转换

算法步骤:

  1. 初始化总和sum为0。
  2. 使用一个循环,从1到2019遍历每个数字num。
  3. 在循环中,判断num的数位中是否包含2、0、1、9这些数字。
    • 数位分解: 通过除法与取模运算获取各个数位上值,然后进行判断。
    • 字符串转换: 将num转换为字符串,然后使用字符串的contains方法判断是否包含2、0、1、9这些字符。
    • 如果包含,将num累加到总和sum中。
  4. 循环结束后,输出总和sum。

代码实现:

数位分解:

java 复制代码
public class Main {
    public static void main(String[] args) {
        int sum = 0;
        for (int i = 1; i <= 2019; i++) {
            if (containsDigits(i)) {
                sum += i;
            }
        }
        System.out.println("在 1 到 2019 中所有这样的数的和是:" + sum);
    }

    public static boolean containsDigits(int num) {
        while (num > 0) {
            int digit = num % 10;
            if (digit == 2 || digit == 0 || digit == 1 || digit == 9) {
                return true;
            }
            num /= 10;
        }
        return false;
    }
}
 

字符串转换:

java 复制代码
public class Main {
    public static void main(String[] args) {
        int sum = 0;
        for (int i = 1; i <= 2019; i++) {
            if (containsDigits(i)) {
                sum += i;
            }
        }
        System.out.println("在 1 到 2019 中所有这样的数的和是:" + sum);
    }

    public static boolean containsDigits(int num) {
        String numStr = String.valueOf(num);
        return numStr.contains("2") || numStr.contains("0") || numStr.contains("1") || numStr.contains("9");
    }
}
相关推荐
CodeStats6 分钟前
《源纹天书》第一百六十一章至第一百六十五章:开源化宣言、元定义的力量、栈帧重构、容器道场升级、技术债的化身!
java·源纹天书
不良手残11 分钟前
MyBatisPlus代码自动生成器
java
SamDeepThinking15 分钟前
一次线程池线上故障复盘:四层防线如何避免数据丢失
java·后端·程序员
花生智源28 分钟前
Java实现Prompt工程的技巧——从模板到工程化,告别字符串拼接
java·人工智能
折哥的程序人生 · 物流技术专研31 分钟前
Java 23 种设计模式:从踩坑到精通 | 番外:策略 vs 模板方法 —— 组合与继承的终极对决
java·策略模式·java面试·comparator·模版方法模式·java设计模式·从踩坑到精通
库克克38 分钟前
【C++】类和对象--this指针详解
java·开发语言·c++
SL_staff1 小时前
JVS低代码完整源码解析:如何二次开发自己的表单组件?
java·低代码·vuex
疯狂打码的少年1 小时前
【软件工程】需求工程:需求规格说明与需求验证
笔记·软件工程
QN1幻化引擎1 小时前
Gravity-Anchored Cognitive Field Architecture: The DalinX V8/V10 Implementation
java·前端·算法
一生有你20201 小时前
Spring AI ChatMemory 监控与排查:从指标到排错全链路
java·人工智能·spring