PAT (Basic Level) Practice1012 数字分类
1012 数字分类
一、题目
给定一系列正整数,请按要求对数字进行分类,并输出以下 5 个数字:
- A1=A_1=A1= 能被 5 整除的数字中所有偶数的和;
- A2=A_2=A2= 将被 5 除后余 1 的数字按给出顺序进行交错求和,即计算 n1−n2+n3−n4⋅⋅⋅⋅n_1-n_2+n_3-n_4 \cdot \cdot \cdot\cdotn1−n2+n3−n4⋅⋅⋅⋅;
- A3=A_3=A3= 被 5 除后余 2 的数字的个数;
- A4=A_4=A4= 被 5 除后余 3 的数字的平均数,精确到小数点后 1 位;
- A5=A_5=A5= 被 5 除后余 4 的数字中最大数字。
二、输入输出
输入格式
每个输入包含 1 个测试用例。每个测试用例先给出一个不超过 1000 的正整数 N,随后给出 N 个不超过 1000 的待分类的正整数。数字间以空格分隔。
输出格式
对给定的 NNN 个正整数,按题目要求计算 A1A_1A1 ~ A5A_5A5 并在一行中顺序输出。数字间以空格分隔,但行末不得有多余空格。
若其中某一类数字不存在,则在相应位置输出 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
四、题目分析
读入数据根据对5取余的结果分类处理,每一类都需要记录数据个数,最后如果数量为0输出N
,非零则根据要求计算。
五、代码
#include <bits/stdc++.h>
using namespace std;
int main()
{int n;cin >> n;int num;int count_0 = 0;int sum_0 = 0;int flag_1 = 1;int count_1 = 0;int sum_1 = 0;int count_2 = 0;int sum_3 = 0;int count_3 = 0;int count_4 = 0;int max_4 = 0;for (int i = 0; i < n; i++){cin >> num;switch (num % 5){case 0:if (num % 2 == 0){sum_0 += num;count_0++;}break;case 1:{sum_1 += flag_1 * num;flag_1 = -flag_1;count_1++;}break;case 2:count_2++;break;case 3:{sum_3 += num;count_3++;}break;case 4:{if (max_4 < num)max_4 = num;count_4++;}break;}}cout << setiosflags(ios::fixed) << setprecision(1);count_0 ? cout << sum_0 : cout << 'N';cout << ' ';count_1 ? cout << sum_1 : cout << 'N';cout << ' ';count_2 ? cout << count_2 : cout << 'N';cout << ' ';count_3 ? cout << (double)sum_3 / count_3 : cout << 'N';cout << ' ';count_4 ? cout << max_4 : cout << 'N';return 0;
}
六、总结
三目条件运算符中的类型转换:
对于本题的输出:count_0 ? cout << sum_0 : cout << 'N';
如果写成:
cout << (count ? sum_0 : 'N');
条件运算符的第二操作数是整型,第三操作数是字符型,如果
count
为0,输出的不是N,而是78('N’的ASCII码值),第三被隐式类型转换为第二操作数相同的类型。switch语句(一般使用
if-else
较多,switch
记得写break
)switch (expression) {case /* constant-expression */:/* code */break;default:break; }
控制浮点数精度的流操纵算子
对于保留固定小数位数的输出,采取定点输出:、cout << setiosflags(ios::fixed) << setprecision(1);
setiosflags(ios::fixed)
表示定点输出;setprescision(n)
表示保留n位小数。
取消定点输出需要使用resetiosflags(ios::fixed)
流操作算子。
相比于流输出,对于格式控制printf
更方便一些。
PAT (Basic Level) Practice1012 数字分类相关推荐
- PAT (Basic Level) Practice1019 数字黑洞
1019 数字黑洞 一.题目 给定任一个各位数字不完全相同的 4 位正整数,如果我们先把 4 个数字按非递增排序,再按非递减排序,然后用第 1 个数字减第 2 个数字,将得到一个新的数字.一直重复这样 ...
- 1048 数字加密【PAT (Basic Level) Practice (中文)】
1048 数字加密[PAT (Basic Level) Practice (中文)] 原题链接:1048 数字加密 (pintia.cn) 1.前言 PAT(乙级)2015年冬季考试 第三题 分数: ...
- 【题解】PAT (Basic Level) Practice (中文)
互联网行业的小白,写博客的目的是为了记录自己的学习过程.对自己学习中所犯的错误做一个总结.由于水平有限,博客中难免会有一些错误出现,有纰漏之处恳请各位大佬不吝赐教! PAT Basic Level P ...
- PAT basic level 答案+解题思路+难点 (个人刷题记录)
PAT basic level 使用语言:C++ 仅记录一下自己刷题过程的心得体会 永远保持更新(期待更好的解法) 可能有些题没有(那就是我还没做出来,以后会更的!) 欢迎大家与我讨论交流√ 题目序列 ...
- PAT (Basic Level) Practice (中文)1058 选择题 (20 分)
PAT (Basic Level) Practice (中文)1058 选择题 (20 分) 文章目录 PAT (Basic Level) Practice (中文)1058 选择题 (20 分) 题 ...
- PAT (Basic Level) Practice (中文)1070 结绳 (25 分) 凌宸1642
PAT (Basic Level) Practice (中文)1070 结绳 (25 分) 凌宸1642 题目描述 给定一段一段的绳子,你需要把它们串成一条绳.每次串连的时候,是把两段绳子对折,再如下 ...
- PAT (Basic Level) Practise (中文)-1025. 反转链表 (25)
PAT (Basic Level) Practise (中文)-1025. 反转链表 (25) http://www.patest.cn/contests/pat-b-practise/1025 ...
- PAT (Basic Level) Practise (中文)-1034. 有理数四则运算(20)
PAT (Basic Level) Practise (中文)-1034. 有理数四则运算(20) http://www.patest.cn/contests/pat-b-practise/1034 ...
- 可优化-PAT (Basic Level) Practice Python解法 1026 程序运行时间(时间进位/四舍五入Tobe解决)
可优化-PAT (Basic Level) Practice Python解法 1026 程序运行时间(时间进位/四舍五入Tobe解决) c1, c2 = map(int,input().split( ...
最新文章
- 程序员:请你不要对业务「置之不理」
- LeetCode: Flatten Binary Tree to Linked List
- Verilog中可综合与不可综合的语句
- Python 的函数
- 优化SQL Server的内存占用之执行缓存
- $.get、$.post 和 $().load()
- 这三道题,总有一道你是答不出来的
- 7-1 装载问题 (10 分)(思路+详解)
- C# datetime 格式化
- 浏览器与WEB服务器交互
- Unity3d大会的部分总结
- windows安装docker后启动报错无法下载镜像文件Error with pre-create check: “Get https://github-production-release-ass
- Linux,vi编辑器使用手册
- 支持哪些格式的图标_免费矢量图标素材资源网站,您一定会有需要(建议收藏)...
- 设计模式之设计原则(一)
- VScode运行MATLAB
- 【魔兽世界插件】魔兽世界插件实战笔记从入门到放弃的心理历程 第五节 窗体文字材质设置
- Java常用命令:jps、jstack、jmap、jstat(带有实例教程)
- 当我们在聊「开源大数据调度系统Taier」的数据开发功能时,到底在讨论什么?
- 使用nginx模拟反向代理
热门文章
- SpringBoot之第一个Restfu示例
- C++之导入lib库
- WordPress搬家插件迁移网站的方法(从一台服务器搬到另一台服务器)
- mysql 查看内核版本命令_Linux查看版本命令问题
- 陀螺仪数据转换成角度_请教怎么把用陀螺仪积分得到的角度转换到大地坐标系下?...
- linux 路由跟踪命令_一文掌握linux系统路由跟踪指令traceroute
- IDEA插件: 一键自动部署jar到远程服务器 使用 Cloud Toolkit 来部署应用到腾讯云、阿里云服务器
- linux鼠标改为自动聚焦,如何在Linux上取消聚焦(模糊)Pythongi GTK+3窗口
- java对象赋值优雅写法_看看人家写的API,那才叫优雅!
- python jieba库分词_Python基于jieba库进行简单分词及词云功能实现方法