概述
给定一系列正整数,请按要求对数字进行分类,并输出以下 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
注意测试点8;注意不能利用a2等于0来判断是否存在a2这类数,需要另外使用一个标记项来进行判断。
AC代码如下:
#include<bits/stdc++.h>
using namespace std;
int main(){
#ifdef ONLINE_JUDGE
#else
freopen("1.txt","r",stdin);
#endif
int num,temp,a1=0,a2=0,a3=0,a5=0;
double a4=0,a4_num=0;
int n=1,flag1=0;
cin>>num;
for(int i=0;i<num;i++){
cin>>temp;
if(temp%5==0&&temp%2==0) a1+=temp;
if(temp%5==1){ //测试点8注意不能利用a2等于0来判断是否存在a2这类数
a2 = a2+n*temp;
n=-n;
flag1=1;
}
if(temp%5==2) a3++;
if(temp%5==3) {
a4+=temp;a4_num++;
}
if(temp%5==4){
if(a5<temp) a5 = temp;
}
}
if(a1==0) printf("N");
else printf("%d",a1);
if(flag1==1) printf(" %d",a2);
else printf(" N");
if(a3!=0)printf(" %d",a3);
else printf(" N");
if(a4!=0) printf(" %.1lf",a4/a4_num);
else printf(" N");
if(a5!=0 )printf(" %d",a5);
else printf(" N");
}
最后
以上就是酷酷蜗牛为你收集整理的【PAT】1012 数字分类 (20 分)+测试点八的坑(刷题笔记)的全部内容,希望文章能够帮你解决【PAT】1012 数字分类 (20 分)+测试点八的坑(刷题笔记)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复