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

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


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

一、L1-003 个位数统计

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

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

解题思路
  1. 转为字符串处理:将输入的整数转换为字符串,逐字符遍历统计每个数字出现的次数。
  2. 数组计数:使用一个长度为10的数组来记录数字0-9的出现次数,遍历完成后输出结果。
  3. 格式化输出:按题目要求格式化输出统计结果。
代码实现
cangjie 复制代码
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 计算摄氏温度](#下一篇: 「Mac玩转仓颉内测版13」PTA刷题篇4 - L1-004 计算摄氏温度)

作者:SoraLuna

链接:https://www.nutpi.net/thread?topicId=157

來源:坚果派

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


相关推荐
江畔柳前堤3 小时前
大语言模型分布式训练:从并行策略到万卡工程的系统梳理
人工智能·分布式·深度学习·算法·目标检测·机器学习·语言模型
Forever Nore4 小时前
LeetCode 4 寻找两个正序数组的中位数 - 二分
算法·leetcode
罗西的思考5 小时前
【OpenClaw具身硬件】MiniClaw 阅读笔记---(1)基础
人工智能·算法·机器学习
蛋先生DX6 小时前
大模型参数存储格式揭秘:BF不是男朋友
深度学习·算法·llm
爱跳舞的烤冷面7 小时前
自学嵌入式第22天(数据结构——哈希)
数据结构·算法·哈希算法
猎嘤一号7 小时前
博弈论(Game Theory)的理论、算法与工程
人工智能·算法·安全·博弈论
月光船幽幽7 小时前
影子模式下保护 logits 不被修改
人工智能·python·算法
马拉AI7 小时前
腾讯开源 Agent 记忆系统,AI“换对话就忘”的问题有了新解法(附安装使用教程)
人工智能·算法·开源·科研
地平线开发者9 小时前
征程6工具链模型X86推理方式说明
算法
地平线开发者9 小时前
【征程6】校准量化中HistogramObserver解析
算法