1012 数字分类 (20分)

给定一系列正整数,请按要求对数字进行分类,并输出以下 5 个数字:
A
​1
​​ = 能被 5 整除的数字中所有偶数的和;
A
​2
​​ = 将被 5 除后余 1 的数字按给出顺序进行交错求和,即计算 n
​1
​​ −n
​2
​​ +n
​3
​​ −n
​4
​​ ⋯;
A
​3
​​ = 被 5 除后余 2 的数字的个数;
A
​4
​​ = 被 5 除后余 3 的数字的平均数,精确到小数点后 1 位;
A
​5
​​ = 被 5 除后余 4 的数字中最大数字。
输入格式:

每个输入包含 1 个测试用例。每个测试用例先给出一个不超过 1000 的正整数 N,随后给出 N 个不超过 1000 的待分类的正整数。数字间以空格分隔。
输出格式:

对给定的 N 个正整数,按题目要求计算 A
​1
​​ ~A
​5
​​ 并在一行中顺序输出。数字间以空格分隔,但行末不得有多余空格。
若其中某一类数字不存在,则在相应位置输出 N。
输入样例 1:

13 1 2 3 4 5 6 7 8 9 10 20 16 18
输出样例 1:

30 11 2 9.7 9
输入样例 2:

8 1 2 4 5 6 7 9 16
输出样例 2:

N 11 2 N 9

由于当时c++不会,导致代码复杂,不多说,直接上柳神代码

#include <iostream>
#include <vector>
using namespace std;
int main() {int n, num, A1 = 0, A2 = 0, A5 = 0;//A1表示能被 5 整除的数字中所有偶数的和;//A2表示被 5 除后余 1 的数字按给出顺序进行交错求和//A5表示被 5 除后余 4 的数字中最大数字。double A4 = 0.0;//A4表示 被 5 除后余 3 的数字的平均数,精确到小数点后 1 位,double;cin >> n;vector<int> v[5];//定义5个数组,分别存储不同类别的数,相当于v[5][?]的二维数组。for (int i = 0; i < n; i++) {cin >> num;v[num%5].push_back(num);//非常巧妙,直接利用余数进行分类}for (int i = 0; i < 5; i++) {for (int j = 0; j < v[i].size(); j++) {if (i == 0 && v[i][j] % 2 == 0) A1 += v[i][j];//整除if (i == 1 && j % 2 == 0) A2 += v[i][j];//利用下标来判断加减if (i == 1 && j % 2 == 1) A2 -= v[i][j];//if (i == 3) A4 += v[i][j];//余3if (i == 4 && v[i][j] > A5) A5 = v[i][j];}}for (int i = 0; i < 5; i++) {if (i != 0) printf(" ");if (i == 0 && A1 == 0 || i != 0 && v[i].size() == 0) {printf("N"); continue;}if (i == 0) printf("%d", A1);if (i == 1) printf("%d", A2);if (i == 2) printf("%d", v[2].size());if (i == 3) printf("%.1f", A4 / v[3].size());if (i == 4) printf("%d", A5);}return 0;
}

这个是我的,不建议阅读

C++学习之路 | PTA乙级—— 1012 数字分类 (20分)(精简)相关推荐

  1. C++学习之路 | PTA乙级—— 1048 数字加密 (20 分)(精简)

    1048 数字加密 (20 分) 本题要求实现一种数字加密方法.首先固定一个加密用正整数 A,对任一正整数 B,将其每 1 位数字与 A 的对应位置上的数字进行以下运算:对奇数位,对应位的数字相加后对 ...

  2. C++学习之路 | PTA乙级—— 1019 数字黑洞 (20分)(精简)

    1019 数字黑洞 (20分) 给定任一个各位数字不完全相同的 4 位正整数,如果我们先把 4 个数字按非递增排序,再按非递减排序,然后用第 1 个数字减第 2 个数字,将得到一个新的数字.一直重复这 ...

  3. C++学习之路 | PTA乙级—— 1084 外观数列 (20 分)(精简)

    1084 外观数列 (20 分) 外观数列是指具有以下特点的整数序列: d, d1, d111, d113, d11231, d112213111, - 它从不等于 1 的数字 d 开始,序列的第 n ...

  4. C++学习之路 | PTA乙级—— 1082 射击比赛 (20 分)(精简)

    1082 射击比赛 (20 分) 本题目给出的射击比赛的规则非常简单,谁打的弹洞距离靶心最近,谁就是冠军:谁差得最远,谁就是菜鸟.本题给出一系列弹洞的平面坐标(x,y),请你编写程序找出冠军和菜鸟.我 ...

  5. C++学习之路 | PTA乙级—— 1068 万绿丛中一点红 (20 分)(精简)

    1068 万绿丛中一点红 (20 分) 对于计算机而言,颜色不过是像素点对应的一个 24 位的数值.现给定一幅分辨率为 M×N 的画,要求你找出万绿丛中的一点红,即有独一无二颜色的那个像素点,并且该点 ...

  6. C++学习之路 | PTA乙级—— 1029 旧键盘 (20 分)(精简)

    1029 旧键盘 (20 分) 旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及实际被输入的文字,请你列出肯定坏掉的那些键. 输入格式: 输入在 2 ...

  7. C++学习之路 | PTA乙级—— 1013 数素数 (20分)(精简)

    1013 数素数 (20分) 令 P ​i ​​ 表示第 i 个素数.现任给两个正整数 M≤N≤10 ​4 ​​ ,请输出 P ​M ​​ 到 P ​N ​​ 的所有素数. 输入格式: 输入在一行中给 ...

  8. C++学习之路 | PTA乙级—— 1063 计算谱半径 (20 分)(精简)

    1063 计算谱半径 (20 分) 在数学中,矩阵的"谱半径"是指其特征值的模集合的上确界.换言之,对于给定的 n 个复数空间的特征值 { a ​1 ​​ +b ​1 ​​ i,⋯ ...

  9. C++学习之路 | PTA乙级—— 1057 数零壹 (20 分)(精简)

    1057 数零壹 (20 分) 给定一串长度不超过 10 ​5 ​​ 的字符串,本题要求你将其中所有英文字母的序号(字母 a-z 对应序号 1-26,不分大小写)相加,得到整数 N,然后再分析一下 N ...

最新文章

  1. python那么慢为什么还有人用-为什么Python运算慢还拿来搞AI?这三点大多数都不知道?...
  2. ML之sklearn:sklearn库中的ShuffleSplit()函数和StratifiedShuffleSplit()函数的讲解
  3. gRPC源码分析2-Server的建立
  4. 【C语言学习】国嵌21__指针基础
  5. 人工智能,不止于技术的革命--WOT2017全球创新技术峰会开幕
  6. Docker的特性解析
  7. 如何从函数中获取指向并调用该函数的函数指针的地址?
  8. Java暑期实训——简易计算器
  9. javashop B2C开源电商系统源代码
  10. localhost 127.0.0.1 本机IP
  11. android 聊天动态表情包,gif表情包制作app下载-GIF表情包 安卓版v1.0-PC6安卓网
  12. 关于STM32的AD采样串口输出
  13. 冯言冯语说DSP(二)序列的z变换
  14. windows服务器硬盘怎么扩容,亚马逊Amazon EC2 Windows服务器磁盘扩容操作步骤
  15. java统计英文单词_java单词统计
  16. Redhat7.5升级openssh到8.2p1
  17. azure java sdk_使用 Azure SDK for Java
  18. ISP-坏点校正(DPC)
  19. 一个月面试大厂,中厂,小厂的总结|2021 年中总结
  20. Enriching Local and Global Contexts for Temporal Action Localization ContextLoc论文阅读笔记

热门文章

  1. pytorch之embedding
  2. SQL Server创建Job, 实现执行相同脚本而产生不同作业计划的探究
  3. mysql递归层次查询
  4. 微信 小程序 canvas
  5. 设计模式之适配器模式(Adapter Pattern)
  6. 2014-01-01
  7. WCF 客户端连接慢
  8. linux的基础知识——signal信号捕捉,信号集操作函数
  9. Leetcode--55. 跳跃游戏
  10. plt.savefig 不保存边框_Matlab科研绘图 amp; 保存