首页 > 编程语言 >团体程序设计天梯赛-练习集——L1-003 个位数统计

团体程序设计天梯赛-练习集——L1-003 个位数统计

时间:2025-01-14 09:01:54浏览次数:3  
标签:数字 int 003 这道题 天梯 L1 字符串 strlen 函数

前言

这道题乍一看感觉怪怪的,然后仔细看看,就会发现没那么难,一起来看一下吧

L1-003 个位数统计

在这里插入图片描述

输入格式:

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

输出格式:

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

输入样例:

100311

输出样例:

0:2
1:3
3:1

解题

OK,那我们现在就来看一下这道题,这道题的分值是15分,也是又臭又长的给了一大堆条件,但是实际用到的并不多,题目的要求就是输入一串数字,然后看看每个数字出现了几次,最后以0:2的形式输出出来

这道题也是有两个难点,如下
(1)数据类型的问题,这一串数字定义成什么类型的变量
(2)怎么把每个数字出现的次数算出来

下面我们先来解决第一个问题,第一个问题的解决其实很简单,这一串数字如果用单个的变量没法定义的话,我们就可以给他定义成一个数组,按顺序把每个数字放到数组里面,这样,这一串数字就被成功的接受到了。就比如这样

int num[100]
scanf("%s",&num);

通过上面的方式,我们就可以把数列存储到一个数组里面

下一个问题,怎么计算每个数字出现的次数,在这里我们要用到一个新的函数:

strlen函数

这个函数的作用是计算所求字符串的长度,比如,我输入了

1001001

这样一个字符串,通过strlen函数的调用,我们会得到,这个字符串的长度为7,具体如下

	int n={"1001001"};
	printf("%d",strlen(n));

这样运行得出的结果即为 7 。

注:strlen函数使用是必须要包含string.h

好了,既然我们现在已经知道了这个字符串的长度,那么我们就可以对这个字符串的数组的值进行一个累加的操作,也就是用一个数组存储这个值出现的次数。光说的话太干了,下面直接上代码解渴

代码

#include <stdio.h>
#include <string.h>
int main()
{
	char str[1000];
	int count[10] = {0};
	int i = 0;
	scanf("%s", str);//输入字符串
        for (i = 0; i < strlen(str); i++) {//统计字符串的长度
            count[str[i] - '0']++;// 统计字符出现次数,并按顺序保存
        }
	for(i = 0; i < 10;i++)
	{
		if(count[i]>0)//判断这个字符是否出现
		{
			printf("%d:%d\n",i,count[i]);//输出结果
		}
	}
 } 

那么到这里,这道题就算是解完了,这么一看,不算难,只不过是对strlen这个函数不熟悉,了解这个函数之后这道题的难度就下来了
以上所有代码均为自己编写,本人水平有限,如果有哪里出错或者有更好的解法可以与我私信或在评论区里进行讨论

上一题:团体程序设计天梯赛-练习集——L1-002 打印沙漏

标签:数字,int,003,这道题,天梯,L1,字符串,strlen,函数
From: https://blog.csdn.net/shidisy/article/details/145128786

相关文章

  • PTA 团体程序设计天梯赛 15分题 048
    L1-048矩阵A乘以B(15)题目要求给定两个矩阵A和B,要求你计算它们的乘积矩阵AB。需要注意的是,只有规模匹配的矩阵才可以相乘。即若A有Ra​行、Ca​列,B有Rb​行、Cb​列,则只有Ca​与Rb​相等时,两个矩阵才能相乘。输入格式输入先后给出两个矩阵A和B。对于每个矩阵,首先在一行中......
  • 中考英语优秀范文-热点话题-传统文化-003 Chinese Tea 中国茶
    1写作要求第三次法国国际友好交流学校线上论坛拟于下周五举行。本期论坛的主题为“茶文化”,作为论坛特邀嘉宾,请你写一篇文章,向国际友好交流学校介绍中国的特色茶饮和中国茶文化。内容包括:1茶的历史(中国人种茶、饮茶已有4000多年的历史)和种类(绿茶、红茶、乌龙茶……);2茶具(主......
  • PTA 团体程序设计天梯赛 15分题 044
    L1-044稳赢(15)题目要求大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示:现要求你编写一个稳赢不输的程序,根据对方的出招,给出对应的赢招。但是!为了不让对方输得太惨,你需要每隔K次就让一个平局。输入格式输入首先在第一行给出正整数K(≤10),即平局间隔......
  • ENSP报错之AR设备一直###的特殊情况(防火墙 错误代码 0x80070003)
    ENSP报错:AR设备一直###,无法正常开启,客户是学生,修改过防火墙的注册表(估计是是学网络安全的)故障检查过程:虚拟机正常开启,虚拟网卡正常,未开启代理,防火墙异常,AR一直###。故障原因:WindowsDefender防火墙无法更改某些设置,错误代码0x80070003(下面的图是我在网上找的,实际的图报错......
  • 蓝桥20034-幸福饺子馆 找规律/组合数学/逆元
    https://www.lanqiao.cn/problems/20034/learning/?page=1&first_category_id=1点击查看代码'''找规律在组合中存在对称性,即递增的位置对称,如111311231133122312331333一共存在K种组合,则[L,R]中的数字会平分K*(N-2)次出现,然后L,R会各自再出......
  • 【Vim Masterclass 笔记07】S05L19:Vim 剪切、复制、粘贴操作同步练习
    文章目录S05L19Vim剪切、复制、粘贴操作同步练习(Exercise05-Cut,CopyandPaste)1训练目标2操作指令2.1打开dyp.txt文件2.2交换文件的头两行2.3将文件首行put到文件其他为止2.4练习在光标位置的上方粘贴文本行2.5通过交换字符顺序更正存在的笔误2.6交换......
  • 游戏开发-从零开始 003
    搁浅了很多年,重新拾遗。之前陆续发了3款小游戏,很久没维护之后ios上面都下架了。每年688,不说了。都是泪。进入正题。23年AI大火,逼迫很多人下岗,但好的方面是解放了生产力生成式AI的崛起让独立游戏找到了新方向,AI绘画,AI音乐,AI编程,甚至不需要懂编程,就可以创造出一款游戏。游戏......
  • 牛客 NC20032 激光炸弹 二维前缀和
    #include<bits/stdc++.h>usingnamespacestd;inta[5010][5010];intpre[5010][5010];constintN=5e3;intmain(){ intn,m; cin>>n>>m; for(inti=0;i<n;i++) { intx,y,z; cin>>x>>y>>z; a[x][y]=z; } pre[0][0......
  • 易基因:单细胞WGBS揭示母源蛋白Pramel15调控早期胚胎发育的DNA甲基化重编程机制|NC/IF 1
    大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。哺乳动物的早期胚胎发育会经历重要的表观遗传重编程过程,这一过程需要重置从亲本基因组继承的表观遗传信息,以启动胚胎基因表达程序,而全基因组去甲基化对表观遗传重编程至关重要。哺乳动物基因组在CpG位点上有较高水平......
  • 超低功耗段LCD液晶段码显示屏驱动芯片(ic)VKL128 LQFP44 I2C通信接口/可配置4种功耗模
    产品品牌:永嘉微电/VINKA产品型号:VKL128封装形式:SSOP44概述VKL128是一个点阵式存储映射的LCD驱动器,可支持最大128点(32SEGx4COM)的LCD屏。单片机可通过I2C接口配置显示参数和读写显示数据,可配置4种功耗模式,也可通过关显示和关振荡器进入省电模式。其高抗干扰,低功耗的特性适用于......