当前位置: 首页 > article >正文

蓝桥杯试题:计数问题

一、题目描述

试计算在区间 1 到 n的所有整数中,数字 x(0≤x≤9)x(0≤x≤9) 共出现了多少次?

例如,在 1 到 11 中,即在 1、2、3、4、5、6、7、8、9、10、11 中,数字 1 出现了 4 次。

输入描述

输入共 1 行,包含 2 个整数 n、xn、x,之间用一个空格隔开。

其中,1≤n≤106,0≤x≤91≤n≤106,0≤x≤9。

输出描述

输出共 1 行,包含一个整数,表示 xx 出现的次数。

二、代码展示

import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int n = scan.nextInt();
        int x = scan.nextInt();
        int count = 0;
        for(int i = 1 ;i <= n;i++){
          String s = i+ "";
          for(int j=0; j < s.length(); j++){
            int c = s.charAt(j) - '0';
            if(c == x){
              count++;
            }
          }
        }
      System.out.println(count);
    }
}

将数字转换为字符串并逐位检查

String s = i + "";
for(int j = 0; j < s.length(); j++){
    int c = s.charAt(j) - '0';
    if(c == x){
        count++;
    }
}


步骤:
  1. 转换为字符串:将当前数字 `i` 转换为字符串 `s`,以便逐位访问每个数字字符。
     String s = i + "";
     这里利用了字符串拼接的特性,将整数 `i` 转换为字符串形式。

  2. 遍历字符串的每个字符:
     for(int j = 0; j < s.length(); j++){
     }
     使用嵌套的 `for` 循环遍历字符串 `s` 的每一个字符。

  3. 提取数字并比较:
     int c = s.charAt(j) - '0';
     if(c == x){
         count++;
     }
     - `s.charAt(j)` 获取字符串 `s` 中索引为 `j` 的字符。
     - `s.charAt(j) - '0'` 将字符转换为对应的整数值。这是因为字符 `'0'` 到 `'9'` 在ASCII码中是连续的,减去 `'0'` 可以得到实际的数字值。
     - 如果转换后的数字 `c` 等于目标数字 `x`,则将计数器 `count` 增加 1。


http://www.kler.cn/a/549701.html

相关文章:

  • ubuntu基于docker部署呼叫中心质检【支持情绪,话术对比】
  • c# —— StringBuilder 类
  • QxOrm生成json
  • 2025年2月16日笔记
  • 如何使用 HPjtune 分析 Java GC 日志并优化 JVM 性能
  • 性格测评小程序07用户登录
  • 如何利用AI一键生成PPT,提升工作效率和创意灵感
  • Effective Objective-C 2.0 读书笔记——协议和分类
  • LLaMa Factory 安装
  • HarmonyOS 5.0应用开发——Canvas制作个人签名
  • 微软官方出品GPT大模型编排工具:7个开源项目
  • mysql快照读当前读
  • LlamaFactory可视化模型微调-Deepseek模型微调+CUDA Toolkit+cuDNN安装
  • 缓存的介绍
  • STM32的DMA解释
  • hivemetastore 连接过多导致sql查询慢
  • Fiori APP配置中的Semantic object 小bug
  • 如何避免redis长期运行持久化AOF文件过大的问题:AOF重写
  • 深度学习:基于Qwen复现DeepSeek R1的推理能力
  • 基于mediapipe深度学习的手势数字识别系统python源码