PAT算法题目 数字分类
2017-11-07 21:55
253 查看
题目描述
给定一系列正整数,请按要求对数字进行分类,并输出以下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”。
输入例子:
13 1 2 3 4 5 6 7 8 9 10 20 16 18
输出例子:
30 11 2 9.7 9
#include <iostream> #include <vector> #include <stdlib.h> #include <stdio.h> #include <algorithm> #include <iomanip> using namespace std; typedef long long LL; int main() { int N; cin >> N; int tmp; int sum1 = 0; int sum2 = 0; int count = 0; int MaxData=0; int MixSum=0; int MixSum_result=0; int count_4=0; float sum_4=0; vector<int> ThoseNum; vector<int> sum5_tmp; int sum4_tmp_2=0; while (cin>>tmp) { ThoseNum.push_back(tmp); } for (int i = 0; i < N;++i) { if (ThoseNum[i]%5==0 && ThoseNum[i]%2==0) { sum1 += ThoseNum[i]; } else if (ThoseNum[i]%5==1) { MixSum++; if (MixSum%2==1) { MixSum_result += ThoseNum[i]; } else { MixSum_result -= ThoseNum[i]; } } else if (ThoseNum[i]%5==2) { count++; } else if (ThoseNum[i]%5==3) { sum_4 += ThoseNum[i]; count_4++; } else if (ThoseNum[i]%5==4) { sum5_tmp.push_back(ThoseNum[i]); for (int i = 0; i < sum5_tmp.size();++i) if (sum5_tmp[i]>MaxData) { MaxData = sum5_tmp[i]; } } } if (sum1)cout << sum1 << " "; else cout << "N "; if (MixSum_result)cout << MixSum_result << " "; else cout << "N "; if (count)cout << count << " "; else cout << "N "; float result = sum_4 / count_4; if (sum_4)printf("%.1f ", result); else cout << "N "; if (MaxData)cout << MaxData <<endl; else cout << "N"<<endl; return 0; }
相关文章推荐
- PAT算法笔记(二)————数字分类
- 牛客网PAT题目1002——数字分类(Java)
- 编程题目: PAT 1012. 数字分类 (20)
- 编程题目: PAT 1012. 数字分类 (20)
- 【PAT】B1012. 数字分类(C++精确到小数点、题目理解)
- PAT——数字分类
- PAT乙级 1012. 数字分类 (20)
- PAT-乙级-1012. 数字分类 (20)
- 【PAT】B1012. 数字分类
- poj题目详细分类及算法推荐题目
- 九度 Online Judge 算法 刷题 题目1089:数字反转
- 浙大PAT 1012. 数字分类 (解题思路)
- KNN分类算法实现手写数字识别
- 1012. 数字分类 (20)-PAT乙级真题
- 【C++】浙大PAT (Basic Level)1012. 数字分类 (20)
- 【算法】POJ 题目分类
- 算法题目---圆圈中最后剩下的数字
- PAT(乙):1012. 数字分类
- 【转】POJ各题算法分类和题目推荐
- PAT (Basic Level) Practise (中文)- 1012. 数字分类 (20)