[C++]PAT乙级1012.数字分类 (20/20)
/*
1012. 数字分类 (20) 给定一系列正整数,请按要求对数字进行分类,并输出以下5个数字: A1 = 能被5整除的数字中所有偶数的和;
A2 = 将被5除后余1的数字按给出顺序进行交错求和,即计算n1-n2+n3-n4...;
A3 = 被5除后余2的数字的个数;
A4 = 被5除后余3的数字的平均数,精确到小数点后1位;
A5 = 被5除后余4的数字中最大数字。 输入格式:
每个输入包含1个测试用例。每个测试用例先给出一个不超过1000的正整数N,随后给出N个不超过1000的待分类的正整数。数字间以空格分隔。
输出格式:
对给定的N个正整数,按题目要求计算A1~A5并在一行中顺序输出。数字间以空格分隔,但行末不得有多余空格。
若其中某一类数字不存在,则在相应位置输出“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
*/
/*
思路:
1.依次录入数据
1.1 根据模数值,判断用例数组元素属于哪一类数据
1.2 根据分类标准,预处理分类数据
2.按照规定格式输出. 注意:
边界条件是细节,例如:对A2计数:判断是否有A2的元素,避免求和结果为0时,引起歧义。
*/
#include <iostream> using namespace std; int main()
{
int size;
int tmp, mod, A2_count = 0,A2_prev = 1, A4_count = 0;//tmp:临时存储原始数据元素;A2_prev:对上一A2元素的正负号标记,默认为+,1:+,-1:-;A3_count:对A3 的元素个数计数
int A1 = 0, A2 = 0, A3 = 0, A5 = -1;//A5:存储被5除后余4的数字中最大数字
double A4 = 0;//A4:存储元素之和,最后求平均数
scanf("%d", &size);
while(size--){
scanf("%d", &tmp);
mod = tmp % 5;
if(mod == 0){
if(tmp % 2 == 0){
A1 += tmp;//A1:能被5整除的数字中所有偶数的和
}
}else if(mod == 1){//A2:将被5除后余1的数字按给出顺序进行交错求和,即计算n1-n2+n3-n4...;
A2 += A2_prev * tmp;
A2_prev *= -1;
A2_count++;//注意:对A2计数原因:判断是否有A2的元素,避免求和结果为0时,引起歧义。
} else if(mod == 2) {//A3:被5除后余2的数字的个数;
A3++;
} else if(mod == 3){//A4:被5除后余3的数字的平均数,精确到小数点后1位;
A4 += tmp;//累计求和
A4_count++;//计数
} else {//A5:被5除后余4的数字中最大数字。
A5 = tmp > A5 ? tmp : A5;
}
} if(A1 != 0){
printf("%d ", A1);
} else {
printf("%s ", "N");
}
if(A2_count != 0){
printf("%d ", A2);
} else {
printf("%s ", "N");
}
if(A3 != 0){
printf("%d ", A3);
} else {
printf("%s ", "N");
}
if(A4 != 0){
printf("%.1f ", A4 / A4_count);
} else {
printf("%s ", "N");
}
if(A5 != -1){
printf("%d", A5);
} else {
printf("%s", "N");
}
// printf("%d %d %d %.1f %d", A1, A2, A3, A4 / A4_count, A5);//test return 0;
}
[C++]PAT乙级1012.数字分类 (20/20)的更多相关文章
- PAT乙级 1012. 数字分类 (20)
1012. 数字分类 (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 给定一系列正整数,请按要求对数字进 ...
- PAT 乙级 1012 数字分类 (20) C++版
1012. 数字分类 (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 给定一系列正整数,请按要求对数字进 ...
- PAT 乙级 1012.数字分类 C++/Java
题目来源 给定一系列正整数,请按要求对数字进行分类,并输出以下 5 个数字: A1 = 能被 5 整除的数字中所有偶数的和: A2 = 将被 5 除后余 1 的数字按给出顺序进行交错求和, ...
- PAT 乙级 -- 1012 -- 数字分类
题目简介 给定一系列正整数,请按要求对数字进行分类,并输出以下5个数字: A1 = 能被5整除的数字中所有偶数的和: A2 = 将被5除后余1的数字按给出顺序进行交错求和,即计算n1-n2+n3-n4 ...
- 【PAT】1012. 数字分类 (20)
1012. 数字分类 (20) 给定一系列正整数,请按要求对数字进行分类,并输出以下5个数字: A1 = 能被5整除的数字中所有偶数的和: A2 = 将被5除后余1的数字按给出顺序进行交错求和,即计算 ...
- PAT(B) 1012 数字分类(Java)
题目链接:1012 数字分类 代码 /** * Score 20 * Run Time 142ms * @author wowpH * @version 1.1 */ import java.util ...
- PAT Basic 1012 数字分类 (20 分)
给定一系列正整数,请按要求对数字进行分类,并输出以下 5 个数字: A1 = 能被 5 整除的数字中所有偶数的和: A2 = 将被 5 除后余 1 的数字按给出顺序进行交错求和,即计算 n ...
- PAT (Basic Level) Practice 1012 数字分类 分数 20
给定一系列正整数,请按要求对数字进行分类,并输出以下 5 个数字: A1 = 能被 5 整除的数字中所有偶数的和: A2 = 将被 5 除后余 1 的数字按给出顺序进行交错求和,即计算 n1−n ...
- PAT乙级1012
1012 数字分类 (20 分) 给定一系列正整数,请按要求对数字进行分类,并输出以下 5 个数字: A1 = 能被 5 整除的数字中所有偶数的和: A2 = 将被 5 除后余 1 的 ...
随机推荐
- javascript之判断专题
javascript有数组,对象,函数,字符串,布尔,还有Symbol,set,map,weakset,weakmap. 判断这些东西也是有很多坑,像原生的typeof,instanceOf有一些bu ...
- 讲道理,为什么分布式一定要有Redis?
考虑到绝大部分写业务的程序员,在实际开发中使用 Redis 的时候,只会 Set Value 和 Get Value 两个操作,对 Redis 整体缺乏一个认知.所以我斗胆以 Redis 为题材,对 ...
- 为什么每次app访问服务器都建立新连接 导致服务器大量连接疯涨
运维发现服务器有大量连接不释放,而且每次app访问都会建立新连接. netstat -antlp |grep ESTAB|grep 8080|wc -l (访问服务器8080端口的已建立的连接数 ...
- Building Microservices with Spring Boot and Apache Thrift. Part 2. Swifty services
http://bsideup.blogspot.com/2015/04/spring-boot-thrift-part2.html In previous article I showed y ...
- 洛谷 P1393 P3157 动态逆序对
嘛,好久没碰CDQ分治了,做道题练练手. 时间倒流——把删数改为加数. 对于每个被删的,我的想法是拆成询问和add,后来发现一个足矣. 我本来准备对每个删的数都求一遍整体逆序对,后来发现无论如何都不可 ...
- react-native中的state
我们使用两种数据来控制一个组件:props和state.props是在父组件中指定, 而且一经指定,在被指定的组件的生命周期中则不再改变. 对于需要改变的数据,我们需要使用state. 假如我们需要制 ...
- 做IT项目管理也需要具备产品思维
不知道大家有没有听过大胡子姜志辉老师的公开课,我自己认为讲的还是不错的. 因为本身大胡子老师就是一个IT行业的人士,自己还经历了程序员.架构师.项目经理.敏捷教练.产品经理.公司持有人等多个角色.所以 ...
- 114. Flatten Binary Tree to Linked List(M)
. Flatten Binary Tree to Linked List Given a binary tree, flatten it to a linked list in-place. For ...
- socket编程 ------ UDP服务器
void vLANcommunication( void *pvParameters ) { int32 listenfd; do{ listenfd = socket(AF_INET, SOCK_D ...
- python字节(bytes)
在 3.x 中,字符串和二进制数据完全区分开.文本总是 Unicode,由 str 类型表示,二进制数据则由 bytes 类型表示.Python 3 不会以任意隐式的方式混用 str 和 bytes, ...