我是靠谱客的博主 酷酷蜗牛,最近开发中收集的这篇文章主要介绍【PAT】1012 数字分类 (20 分)+测试点八的坑(刷题笔记),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

给定一系列正整数,请按要求对数字进行分类,并输出以下 5 个数字:

A​1​​ = 能被 5 整除的数字中所有偶数的和;
A​2​​ = 将被 5 除后余 1 的数字按给出顺序进行交错求和,即计算 n​1​​−n​2​​+n​3​​−n​4​​⋯;
A​3​​ = 被 5 除后余 2 的数字的个数;
A​4​​ = 被 5 除后余 3 的数字的平均数,精确到小数点后 1 位;
A​5​​ = 被 5 除后余 4 的数字中最大数字。
输入格式:
每个输入包含 1 个测试用例。每个测试用例先给出一个不超过 1000 的正整数 N,随后给出 N 个不超过 1000 的待分类的正整数。数字间以空格分隔。

输出格式:
对给定的 N 个正整数,按题目要求计算 A​1​​~A​5​​ 并在一行中顺序输出。数字间以空格分隔,但行末不得有多余空格。

若其中某一类数字不存在,则在相应位置输出 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 分)+测试点八的坑(刷题笔记)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部