您的位置:首页 > 其它

PAT (Basic Level) Practise (中文)1012. 数字分类 (20)

2018-04-13 21:47 573 查看

1012. 数字分类 (20)

时间限制 100 ms内存限制 65536 kB代码长度限制 8000 B判题程序 Standard 作者 CHEN, Yue给定一系列正整数,请按要求对数字进行分类,并输出以下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<stdio.h>using namespace std;int main(){int n;int A1=0,A2=0,A3=0,A5=0;double A4=0;int num=0;int k=0;cin>>n;int *a = new int;bool *b = new bool [5];for(int i=0;i<n;i++){b[i]=false;}for(int i=0;i<n;i++){cin>>a[i];if(a[i]%5==0&&a[i]%2==0){b[0]=true;A1+=a[i];}else if(a[i]%5==1){b[1]=true;if(k%2==1){a[i]=-a[i];}k++;A2+=a[i];}else if(a[i]%5==2){b[2]=true;A3++;}else if(a[i]%5==3){b[3]=true;A4+=a[i];num++;}else if(a[i]%5==4){b[4]=true;if(a[i]>A5){A5=a[i];}}}if(b[0])printf("%d ",A1);elseprintf("N ");if(b[1])printf("%d ",A2);elseprintf("N ");if(b[2])printf("%d ",A3);elseprintf("N ");if(b[3])printf("%.1f ",A4/num);elseprintf("N ");if(b[4])printf("%d",A5);elseprintf("N");return 0;}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: