给定一个 k 位整数 N=dk−1​10k−1+⋯+d1​101+d0​ (0≤di​≤9, i=0,⋯,k−1, dk−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

思路:

主要是以下三个checkpoint,都能想到应该就没问题了。

看到“1000位正整数”,肯定就不是当成数看了,必然是当成string处理。

将每个数字出现的次数保存在数组中。

将数组0-9的下标中所有a[i]不为0的输出。

二刷能发现自己有明显进步,贴出两次的代码,希望看到的读者可以被鼓励到!

#include<iostream>
#include<string>
using namespace std;int main()
{string s;cin >> s;//又是存储数字,数组没跑了int a[10] = { 0 };int i = 0;/*for (int i = 0; i < s.length(); i++){s[i]}*/while (i < s.length()){switch (s[i]-'0') {case 0:a[0]++; break;case 1:a[1]++; break;case 2:a[2]++; break;case 3:a[3]++; break;case 4:a[4]++; break;case 5:a[5]++; break;case 6:a[6]++; break;case 7:a[7]++; break;case 8:a[8]++; break;case 9:a[9]++; break;default:break;}i += 1;}for (int j = 0; j < 10; j++){if (a[j] != 0){cout << j << ":" << a[j] << endl;}}return 0;
}

第二次

#include<iostream>
#include<iomanip>
#include<vector>
#include<set>
#include<list>
#include<deque>
#include<stack>
#include<unordered_map>
#include<cctype>
#include<map>
#include<string>
#include<algorithm>
#include<cmath>
using namespace std;
int num[10];
int main()
{string s;int cnt = 0;cin >> s;for (int i = 0; i < s.length(); i++){if (num[s[i] - '0'] == 0)cnt++;num[s[i]-'0']++;}for (int i = 0; i < 10; i++){if (cnt == 0)break;else if (num[i] != 0){cout << i << ":" << num[i];if (cnt != 0){cout << endl;cnt--;}}}return 0;
}

PAT乙级 1021 个位数统计相关推荐

  1. pat 乙级 1021 个位数统计(C++)

    题目 给定一个 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),请编写程序统计每种不同的个位数字出现的次 ...

  2. PAT乙级(1021 个位数统计)

    给定一个 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),请编写程序统计每种不同的个位 ...

  3. [PAT乙级]1021 个位数统计

    输入格式: 每个输入包含 1 个测试用例,即一个不超过 1000 位的正整数 N. 输出格式: 对 N 中每一种不同的个位数字,以 D:M 的格式在一行中输出该位数字 D 及其在 N 中出现的次数 M ...

  4. PAT初级1021 个位数统计(C++)

    ** PAT初级1021 个位数统计(C++) ** 题目: 思路: 数字只有0-9,统计各类数量,最后输出数量不为0的即可(其实本质也类似于桶排序~) 代码: # include<iostre ...

  5. 【PAT】1021 个位数统计

    一.题目描述 PAT 1021 个位数统计 请编写程序统计每种不同的个位数字出现的次数.例如:给定 N=100311,则有 2 个 0,3 个 1,和 1 个 3. 输入格式: 每个输入包含 1 个测 ...

  6. C++学习之路 | PTA乙级—— 1021 个位数统计 (15分)(精简)

    1021 个位数统计 (15分) 给定一个 k 位整数 N=d ​k−1 ​​ 10 ​k−1 ​​ +⋯+d ​1 ​​ 10 ​1 ​​ +d ​0 ​​ (0≤d ​i ​​ ≤9, i=0,⋯ ...

  7. 【PAT (Basic Level) Practice】——【字符串处理】1021 个位数统计

    文章目录 一[题目难度] 二[题目编号] 三[题目描述] 四[题目示例] 五[解题思路] 六[最终得分] 七[代码实现] 八[提交结果] 一[题目难度] 乙级 二[题目编号] 1021 个位数统计 ( ...

  8. PAT-乙级-1021. 个位数统计 (15)

    1021. 个位数统计 (15) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 给定一个k位整数N = dk-1 ...

  9. 1021. 个位数统计 (15)

    1021. 个位数统计 (15)给定一个k位整数N = dk-1*10k-1 + ... + d1*101 + d0 (0<=di<=9, i=0,...,k-1, dk-1>0), ...

最新文章

  1. canvas入门-1三种填充方式、渐变、模式
  2. 数学之路(2)-数据分析-R基础(2)
  3. Spring内部bean实例
  4. php 继承内核中的基类,继承类上的PHP new self()正在创建一个基类对象
  5. linq from 多个sum_快手重拳打击劣质电商 7月以来封禁700多个团伙账号
  6. 京东云 | AI人才联合培养计划
  7. java.lang.IllegalArgumentException: Request header is too large 解决方案
  8. 爬虫工具和服务——Python之外的选择
  9. 关于Eclipse无法导入包的问题???
  10. unity 电梯_unity应用实例——电梯模拟系统
  11. postman安装使用教程---图文讲解
  12. 基于51单片机的俄罗斯方块游戏
  13. 大点干!早点散----------深入剖析LVS负载均衡群集原理
  14. Qt--QTablewidgets 表格插入图片,且可以自动调整图片的大小
  15. 计算机主机电池馈电,电脑主板电池没电了表现 电脑主板电池没电了解决方法【详解】...
  16. 大白话搞懂什么是同步/异步/阻塞/非阻塞
  17. PHP+Mysql——博客系统(前端+后端-整套源码)
  18. R包bs4Dash控件效果对照图
  19. FANUC机器人PNS自动运行方式详细介绍
  20. 1维数组 2维数组

热门文章

  1. Java基础---键盘录入工具(Scanner类)
  2. 移动端开发 自适应rem js文件
  3. Linux的一些简单命令操作
  4. 马哥Linux--elasticsearch
  5. 2017福建夏令营Day7(数论)
  6. centos7和scientific linux7里面调出中文输入法
  7. 命令行运行Jmeter实例
  8. 【转】eclipse中window-preference选项中没有tomcat的解决方法
  9. Qt GUI@学习日志
  10. FIREDAC连接SQLITE乱码的解决