L1-003 个位数统计(Java) (15 分)_哈密瓜Q的博客-程序员宅基地

技术标签: Java  算法  java  

题目描述:
给定一个 k 位整数 N=(d​k−1​​)*(10)​k−1​​+⋯+(d​1)*(​​10)​1​​+d​0​​ (0≤d​i​​≤9, i=0,⋯,k−1, d​k−1​​>0),请编写程序统计每种不同的个位数字出现的次数。例如:给定 N=100311,则有 2 个 0,3 个 1,和 1 个 3。

输入格式:
每个输入包含 1 个测试用例,即一个不超过 1000 位的正整数 N。

输出格式:
对 N 中每一种不同的数字,以 D:M 的格式在一行中输出该位数字 D 及其在 N 中出现的次数 M。要求按 D 的升序输出。

输入样例:

100311

输出样例:

0:2
1:3
3:1

源码:

import java.util.Arrays;
import java.util.Scanner;

public class count_digit {
    
    public static void main(String[] args) {
    
        Scanner in = new Scanner(System.in);
        String number = in.next();
        //字符串的长度
        int n = number.length();
        int digit[] = new int[10];

        for (int i = 0; i < n; i++) {
    
            digit[number.charAt(i)-'0']++;
        }
        for (int i = 0; i < 10; i++) {
    
            if (digit[i]>0){
    
                System.out.println(i+":"+digit[i]);
            }
        }
    }
}

易错点:使用字符串的charAt()方法时忽略其返回的结果类型是char类型,由于数组下标为整数类型,因此返回的char类型的字符会被强制转化为整型(字符对应的ASCII码),例如返回的字符是’0’,则会被强制转换为48,由于数组的长度为10,因此会出现如下图所示的下标越界的错误,此处用(int)强制类型转换也会出现同样的错误结果。正确的将字符转为整型的方法如下:用字符变量-'0’便可将字符变量转换为整型。因为字符和数字在内存里都是以ASCII码形式存储,减去字符’0’就相当于减去字符’0’的ASCII码,而字符’0’的ASCII码是48,例如:‘2’-‘0’=2,'2’的ASCII为50,因此结果就等于整型的2。

在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/m0_53062159/article/details/120203441

智能推荐

MySQL基于Gtid的主从复制_Aqiu.的博客-程序员宅基地

MySQL基于Gtid的主从复制概念:从 MySQL 5.6.5 开始新增了一种基于 GTID 的复制方式。通过 GTID保证了每个在主库上提交的事务在集群中有一个唯一的ID。这种方式强化了数据库的主备一致性,故障恢复以及容错能力。在原来基于二进制日志的复制中,从库需要告知主库要从哪个偏移量进行增量同步,如果指定错误会造成数据的遗漏,从而造成数据的不一致。借助GTID,在发生主备切换的情况下,MySQL的其它从库可以自动在新主库上找到正确的复制位置,这大大简化了复杂复制拓扑下集群的维护,也减少了人为设

【NOIP practice】BSOJ 3851 计算概率 智力题——加法原理_卡评测大师的博客-程序员宅基地

3851 -- 【模拟试题】计算概率Description  小明有n个长度不一的小木棍,这些木棍的长度都是正整数。小明的父亲想和小明做一个游戏。他规定一个整数长度l,让小明闭着眼睛从n个木棍中随便拿出两个。如果两个木棍的长度总和小于等于l,则小明胜,否则小明的父亲胜。小明想知道他胜出的概率究竟有多大。Input  输入包含两行。第一行为两个整数n和l,其中n和l都不超过10000

Parallels + Nutanix = 中小企业 VDI_weixin_34391854的博客-程序员宅基地

Parallels于近日宣布针对虚拟桌面与应用交付推出全新Nutanix Ready解决方案,旨在为中小企业提供更加简便和经济的IT基础设施与应用生命周期。Parallels Remote Application Server是一款专为Nutanix 企业云打造的Nutanix Ready解决方案,已于近日正式面市。相比传统的虚拟桌面与应用交付解决方案...

mysql中l开头的关键字_mysql数据库概念_好大夫在线的博客-程序员宅基地

数据库查询知识1、 导入hellodb.sql生成数据库[[email protected] ~]# mysql -S /home/app/yanglie/3308/socket/mysql.sock &lt; hellodb_innodb.sqlMariaDB [(none)]&gt; show databases;+--------------------+| Database ...

Google Wifi路由器测试报告新鲜出炉_weixin_34236869的博客-程序员宅基地

对于即将开售的Google Wifi路由器来说,广大消费者最为关心的恐怕还是它的无线性能究竟如何。为了展示“肌肉”,谷歌请来了美国第三方消费电子测试机构Allion USA,对自家产品进行了无线传输、信号覆盖等方面的测试,同时对比目前两款美国市面上流行的无线路由器产品——Luma和Eero。  Google Wifi测试在一个面积为3000平方英尺...

Android的跨进程通信_Jack-Chan的博客-程序员宅基地

Android系统的跨进程简介为什么不能直接跨进程通信?为了安全考虑,应用之间的内存是无法互相访问的,各自的数据都存在于自身的内存区域内。如何跨进程通信?要想跨进程通信,就要找到一个大家都能访问的地方,例如硬盘上的文件,多个进程都可以读写该文件,通过对该文件进行读写约定好的数据,来达到通信的目的。Android中的跨进程通信采用的是Binder机制,其底层原理是共享内存。Binder机制Andro

随便推点

数据结构之图结构_xiaososa.的博客-程序员宅基地_图结构

10.图图基本介绍为什么要有图前面我们学了线性表和树线性表局限于一个直接前驱和一个直接后继的关系树也只能有一个直接前驱也就是父节点当我们需要表示多对多的关系时, 这里我们就用到了图。图的举例说明图是一种数据结构,其中结点可以具有零个或多个相邻元素。两个结点之间的连接称为边。结点也可以称为顶点。如图:图的常用概念1) 顶点(vertex)2) 边(edge)3) 路径4) 无向图(右图5) 有向图6) 带权图图的表示方式图的表示方式有两种:二维数组

xjar加密后运行错误_XJar首页、文档和下载 - Spring Boot JAR 安全加密运行工具_李無鋒的博客-程序员宅基地

XJar — Spring-Boot JAR 包加密运行工具,避免源码泄露以及反编译。Spring Boot JAR安全加密运行工具,同时支持原生的JAR。基于对JAR包内资源的加密以及拓展ClassLoader来构建的一套程序加密启动,动态解密运行的方案,避免源码泄露或反编译。功能特性无需侵入代码,只需要把编译好的JAR包通过工具加密即可。完全内存解密,杜绝源码以及字节码泄露以及反编译。支持所有...

android自动打包方法(ant+proguard+签名)_weixin_34124651的博客-程序员宅基地

前段时间做了一个android的网游项目,现在优化减少体积和防止别人反编译,需要把编译后.class进行混淆,开始在网上看了一些关于 ProGuard的介绍,基本上都是使用ADT自带的打包方式,那个打包方式太慢了,还要手工输密码,一个字烦。于是开始寻找ant+proguard+签名的打包方式,遗憾的是资料不是缺手就是断脚。好吧,看来得食自己了,!@#¥@#!@#!@##¥@#¥!@#@ 转...

解决Ubuntu安装Mysql时没有提示设置密码的问题_叫码农就行的博客-程序员宅基地_ubuntu安装mysql没有设置密码

Ubuntu安装Mysql时没有提示设置密码问题经过了好几个小时的查找资料,终于设置好了。参考了解决Ubuntu安装Mysql时为设置密码1. 打开/etc/mysql/debian.cnf文件,在这个文件中有系统默认给我们分配的用户名和密码,通过这个密码就可以直接对MySQL进行操作了。$sudo vim /etc/mysql/debian.cnf可以看到里面有:u...

《程序员的呐喊》_weixin_34186950的博客-程序员宅基地

TL;DR读完这本书,虽然我认可作者的大部分观点,但是凝神一下,让我感触更多的是,我离优秀的程序员还差很远很远。不过我感到庆幸的是,我一直保持着对计算机的思考和好奇,这份兴趣,让我的坚持,一路充满着迷茫、惊喜和快乐!I’m not a real programmer, but I do my best. “程序员这门...

Windows常用工具_sail0323的博客-程序员宅基地

Win工具:ProcessMonitor、VMMap、Procdump、Debuggers_windbg、leakdiag下载地址:http://ftpmirror.your.org/pub/misc/ftp.microsoft.com/PSS/Tools/Developer%20Support%20Tools/https://docs.microsoft.com/zh-cn/sysinternals/downloads/process-utilities也可以百度网盘取..