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

蓝桥杯试题:计数问题

一、题目描述

试计算在区间 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。

相关文章:

  • word文档提取信息
  • Spring MVC Streaming and SSE Request Processing SSE可以实现chatgpt一次请求分批次响应的效果
  • 数字化转型导师坚鹏:AI大模型DEEPSEEK使用方法及案例
  • 前端知识速记--css篇:CSS3中的常见动画及实现方式
  • 二分搜索算法核心-----labuladong笔记
  • LibreOffice转换word文档
  • GC 基础入门
  • 简述 tsconfig.json 中 rootDir 和 include 之间的关系
  • 沃德校园助手系统php+uniapp
  • Windows逆向工程入门之汇编位运算
  • DeepSeek R1本地化部署:从零搭建智能对话系统
  • Vue的简单入门 一
  • MySQL数据库(八)☞ 我是不是锁神
  • 草图绘制技巧
  • 学习web数据埋点
  • 滑动窗口算法篇:连续子区间与子串问题
  • docker 基础命令使用(ubuntu)
  • 「软件设计模式」桥接模式(Bridge Pattern)
  • Vue:h渲染函数性能警告[Non-function value encountered for default slot.]
  • 4G模块非必要,不关机!关机建议先进飞行模式
  • 国税总局上海市税务局回应刘晓庆被举报涉嫌偷漏税:正依法依规办理
  • 最高人民法院原副院长唐德华逝世,享年89岁
  • 陕西榆林:全力推进榆林学院升格榆林大学
  • 女外交官郑璇已任中国驻莫桑比克大使
  • 小米SU7 Ultra风波升级:数百名车主要求退车,车主喊话雷军“保持真诚”
  • 2025年上海科技节5月17日启动,56家重点实验室和大科学设施将向公众开放