[PAT乙级]1012. 数字分类 (20)
2017-08-04 02:02
253 查看
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
代码:
#include <iostream> #include <vector> #include <cstdio> using namespace std; int main() { int n; scanf("%d", &n); int a2=0,a5=0;//判断是否有符合范围的数 int A1 = 0; int A2 = 0; int A3 = 0; double A4 = 0; int A5 = 0; bool flag = true;//符合A2求和时加减号 int num = 0;//符合A4的数量 for(int i=0; i<n; i++){ int temp; scanf("%d", &temp); if(temp%5==0 && temp%2==0){ A1 += temp; } else if(temp%5==1){ if(flag){ A2 += temp; flag = false; }else{ A2 -= temp; flag = true; } a2 = 1; } else if(temp%5==2){ A3++; } else if(temp%5==3){ A4 += temp; num++; } else if(temp%5==4){ if(temp > A5) A5 = temp; a5 = 1; } } if(A1 == 0) cout << "N "; else cout << A1 << " "; if(a2 == 0) cout << "N "; else cout << A2 << " "; if(A3 == 0) cout << "N "; else cout << A3 << " "; if(num == 0) cout << "N "; else printf("%.1f ", A4/num); if(a5 == 0) cout << "N"; else cout << A5; return 0; }
相关文章推荐
- 乙级 PAT 1012. 数字分类 (20)
- PAT-乙级-1012. 数字分类 (20)
- PAT乙级训练题--1012. 数字分类 (20)
- 1012. 数字分类 (20) PAT乙级真题
- PAT-乙级-1012. 数字分类 (20)
- PAT乙级 1012. 数字分类 (20)
- PAT乙级1012. 数字分类 (20)
- PAT乙级1012. 数字分类 (20)
- PAT 乙级 1012. 数字分类 (20)
- PAT 乙级练习题1012. 数字分类 (20)
- PAT乙级真题及训练集(7)--1012. 数字分类 (20)
- PAT 乙级 1012. 数字分类 (20)
- 浙江大学PAT乙级试题.1012. 数字分类 (20)C语言
- PAT乙级1012. 数字分类 (20)
- PAT-乙级 1012.数字分类(20)
- PAT乙级 1012. 数字分类 (20)
- PAT乙级—1012. 数字分类 (20)-native
- 1012. 数字分类 (20)--PAT乙级
- pat 乙级 1012. 数字分类 (20)
- pat乙级1012. 数字分类 (20)