首页 > 其他分享 >「Mac玩转仓颉内测版12」PTA刷题篇3 - L1-003 个位数统计

「Mac玩转仓颉内测版12」PTA刷题篇3 - L1-003 个位数统计

时间:2024-11-15 12:44:15浏览次数:3  
标签:12 数字 PTA 003 数组 L1 counts 刷题

本篇将继续讲解PTA平台上的题目 L1-003 个位数统计,通过对数字的处理与统计,掌握基础的字符串操作与数组计数功能,进一步提升Cangjie编程语言的实际应用能力。


关键词
  • PTA刷题
  • 数字统计
  • 数组操作
  • 字符串处理
  • 编程技巧

一、L1-003 个位数统计

题目描述:给定一个正整数,统计该数字中每个数字0-9出现的次数。

  • 输入格式:一个非负整数 N
  • 输出格式:按照从小到大的顺序,输出每个数字出现的次数,每个数字一行,格式为:数字: 次数

解题思路
  1. 转为字符串处理:将输入的整数转换为字符串,逐字符遍历统计每个数字出现的次数。
  2. 数组计数:使用一个长度为10的数组来记录数字0-9的出现次数,遍历完成后输出结果。
  3. 格式化输出:按题目要求格式化输出统计结果。
代码实现
package cjcDemo

import std.console.*

// 统计每个数字出现次数的函数
func countDigits(num: String): Array<Int64> {
    // 20241114-当前日期的PTA使用这行
    // var counts = Array<Int64>(10, item:0)
		
    // 0.56.4版本的SDK使用以下行来初始化数组
    var counts = Array<Int64>(10, repeat: 0) 
    let num0 = '0'

    for (i in 0..num.size) {
        counts[Int64(num[i] - num0[0])]++
    }

    return counts
}

main(): Int64 {
    var input = Console.stdIn.readln().getOrThrow()
    let counts = countDigits(input)

    for (i in 0..10) {
        if (counts[i] > 0) {
            println("${i}:${counts[i]}")
        }
    }

    return 0
}

代码详解
  1. 数组计数:定义长度为10的数组,用于记录数字0-9的出现次数。
  2. 遍历字符串:通过遍历字符串中的每个字符,将其转换为对应的整数值,并增加相应的计数。
  3. 格式化输出:按0-9的顺序输出每个数字的出现次数,格式为 数字: 次数

示例执行

输入:

100311

输出:

0:2
1:3
3:1

通过这道题目,可以熟悉字符串的处理以及数组计数的使用,对于处理类似的数字统计问题具有很好的参考价值。


小结

本篇通过解决 L1-003 个位数统计 题目,进一步巩固了对字符串处理、数组计数的理解与应用。这类题目非常适合用于练习基础编程技巧,尤其是数据统计的相关操作。


下篇预告

下一篇将继续进行PTA刷题,讲解 L1-004 计算摄氏温度 的解题思路与实现,敬请期待 「Mac玩转仓颉内测版13」PTA刷题篇4 - L1-004 计算摄氏温度


上一篇: 「Mac玩转仓颉内测版11」PTA刷题篇2 - L1-002 打印沙漏
下一篇: 「Mac玩转仓颉内测版13」PTA刷题篇4 - L1-004 计算摄氏温度

作者:SoraLuna
链接:https://www.nutpi.net/thread?topicId=157
來源:坚果派
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


标签:12,数字,PTA,003,数组,L1,counts,刷题
From: https://blog.csdn.net/weixin_44217688/article/details/143783046

相关文章

  • 论文学习笔记:Sim-to-Real Grasp Detection with Global-to-Local RGB-D Adaptation
    前言本文重点关注RGB-D抓取检测的模拟到真实问题,并将其表述为域适应问题。一、摘要Abstract目录一、摘要Abstract二、介绍Introduction三、相关工作RelatedWork3.1 Sim-to-RealTransfer模拟到真实的转变3.2Sim-to-realTransferforGraspDetection抓......
  • Brave127编译指南 Windows篇:部署Node.js(五)
    1.概述在Brave浏览器的编译过程中,Node.js扮演着关键角色。作为一个建立在ChromeV8引擎之上的JavaScript运行时环境,Node.js为开发者提供了在服务器端执行JavaScript代码的能力。它的非阻塞、事件驱动架构使其特别适合构建高性能、可扩展的网络应用。对于Brave浏览器的开发而......
  • 题解:P11277 世界沉睡童话
    比较简单的构造。注意到题面给出\(a_i\le2n-1\)的条件,考虑这个有什么用,你会发现从\(n\)到\(2n-1\)这\(n\)个数都是两两互不为约数,所以当我们构造出序列后,这些数可以用来填补空位。\(k\)的上界是\(\frac{n(n-1)}{2}\),显然在全部都为同一个数的时候取到,显然有\(x\)个......
  • oracle RMAN Duplicate failing with RMAN-06136, ORA-01503, ORA-00349
     在数据迁移的时候遇到报错RMAN-00571:===========================================================RMAN-00569:===============ERRORMESSAGESTACKFOLLOWS===============RMAN-00571:===========================================================RMAN-03002:failur......
  • 教资 - 综合(12)_单选题
    1、(建构主义)环境是一种以技术为支持的学习环境,学生从中可以展开有意义的学习活动。在学习过程中,技术作为学生探索、实验和反思学习的工具,以使学生从经验中学习。2、认为“教育是塑造人的行为”,强调“强化”在心理发展中作用的是(斯金纳)3、(个别化教学模式)是在程序教学发展的基础上......
  • 2024.11.14 2122版
    起于《海奥华预言》的思考◆地球管理结构和参考持续更新中...... 英文地址:https://github.com/zhuyongzhe/Earth/tags中文地址:https://www.cnblogs.com/zhuyongzhe85作者:朱永哲 ---------------------------------------------------------------------------------......
  • PTA 穷举问题-搬砖
    作者 杨起帆单位 浙大城市学院某工地需要搬运砖块,已知男人一人搬3块,女人一人搬2块,小孩两人搬1块。如果想用n人正好搬n块砖,问有多少种搬法?输入格式:输入在一行中给出一个正整数n。输出格式:输出在每一行显示一种方案,按照"men=cnt_m,women=cnt_w,child=cnt_c"的......
  • 11.12机器学习_特征工程
    四特征工程1特征工程概念特征工程:就是对特征进行相关的处理一般使用pandas来进行数据清洗和数据处理、使用sklearn来进行特征工程特征工程是将任意数据(如文本或图像)转换为可用于机器学习的数字特征,比如:字典特征提取(特征离散化)、文本特征提取、图像特征提取。......
  • Primary Arithmetic UVA - 10035
    //PrimaryArithmeticUVA-10035.cpp:此文件包含"main"函数。程序执行将在此处开始并结束。///*https://vjudge.net/problem/UVA-10035Childrenaretaughttoaddmulti-digitnumbersfromright-to-leftonedigitatatime.Manyfindthe"carry"operation......
  • mysql可视化工具 Navicat Premium 12解压版
    通过网盘分享的文件:NavicatPremium12解压版.rar链接:https://pan.baidu.com/s/1kDLlrcaiQRYGLfN5L-IpPA?pwd=3k6h提取码:3k6h--来自百度网盘超级会员v8的分享 1.解压到指定路径 2.快捷方式,快捷方式用不了,就直接在该文件中直接打开 3.测试链接    ......