数字分类

news2024/11/27 6:39:37

目录

1012:数字分类

输入格式:

输出格式:

输入样例 1:

输出样例 1:

输入样例 2:

输出样例 2:

代码长度限制:

时间限制:

内存限制:

思路:  

  1.变量存储

  1.2代码:

大坑,好多坑:

坑点1:对于A1,如果所有偶数和为0,是输出0还是N。

坑点2:对于A2,如果所有符合条件的数字的交错求和的值为0,是输出0还是N。

完整代码:

 总结:

题目链接:


1012:数字分类

给定一系列正整数,请按要求对数字进行分类,并输出以下 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

代码长度限制:

16 KB

时间限制:

400 ms

内存限制:

64 MB

思路:  

  1.变量存储

  对于每一类数字,我们都用一个变量进行存储就行了,总的来说特别的简单:

  1.2代码:

	while(n--){ //输入n个数进行分类 
		int a;
		cin>>a; //输入一个数字 
		if(a%5==0&&a%2==0) //如果是第一类数字 
		  s1+=a,x++; //s1是求和,x是代表有几类这样的数字 
		if(a%5==1){ //如果是第二类数字 
			if(i%2==0) //利用奇偶数性质判断是该+a还是-a 
			  s2+=a; //加上a 
			else //用奇偶数性质判断是该+a还是-a 
			  s2-=a; //减去a 
			i++; //i是代表奇偶数性质的,也是看这一类数字出现了几次1 
		}
		if(a%5==2) //如果是第三类数字的话 
		  s3++; //计数器加上1 
		if(a%5==3) //如果是第四类数字的话 
		  s4+=(float)a,j++; //加上这个数,因为前面是int类型的,最后要求平均数,要强制转换一下 
		if(a%5==4) //如果是第五类数字的话              //j是看第四类数字出现了几次的计数器 
		  s5=max(s5,a),y++; //用max函数来找里面最大的一个数,y是看第五类数字出现了几次的计数器 
	}

大坑,好多坑:

首先看看输入样例和输出样例:

坑点1:对于A1,如果所有偶数和为0,是输出0还是N。

解答:看样例2: A1输出为N,但输入中明显5是符合A1要求的。因此当所有偶数和为0时,不输出0,输出N,这我们就需要进行一次判断了,我们就可以用在数字分类中记录每一类数字的计数器进行判断。 

坑点2:对于A2,如果所有符合条件的数字的交错求和的值为0,是输出0还是N。

解答:槽点来了,A1、A2明明都有可能求和后值为0,但数组内却有数,但是它们的输出情况却不统一。对于A2,交错求和后的值为0但数组内有数字时,输出0(这一点在样例中并没有体现)。这一点与A1的输出情况完全相反。(你说坑不坑,我当初就是被坑了,所以我才在数字分类的时候给每一类数字加上了计数器)

完整代码:

#include<bits/stdc++.h>
using namespace std;
int main(){
	float n=0,s1=0,s2=0,s3=0,s4=0.0; //每一种分类最后的输出 
	int i=0,s5=0,j=0,x=0,y=0; //很多计数器 
	cin>>n; //输入输入的数字数量 
	while(n--){ //输入n个数进行分类 
		int a;
		cin>>a; //输入一个数字 
		if(a%5==0&&a%2==0) //如果是第一类数字 
		  s1+=a,x++; //s1是求和,x是代表有几类这样的数字 
		if(a%5==1){ //如果是第二类数字 
			if(i%2==0) //利用奇偶数性质判断是该+a还是-a 
			  s2+=a; //加上a 
			else //用奇偶数性质判断是该+a还是-a 
			  s2-=a; //减去a 
			i++; //i是代表奇偶数性质的,也是看这一类数字出现了几次1 
		}
		if(a%5==2) //如果是第三类数字的话 
		  s3++; //计数器加上1 
		if(a%5==3) //如果是第四类数字的话 
		  s4+=(float)a,j++; //加上这个数,因为前面是int类型的,最后要求平均数,要强制转换一下 
		if(a%5==4) //如果是第五类数字的话              //j是看第四类数字出现了几次的计数器 
		  s5=max(s5,a),y++; //用max函数来找里面最大的一个数,y是看第五类数字出现了几次的计数器 
	}
	//输出第一类数字: 
	if(x==0) //如果没有 
	  cout<<"N "; //就输出'N' 
	else //有第一类数字 
	  cout<<s1<<" "; //就讲第一类数字的和s1输出 
	//输出第二类数字: 
	if(i==0) //如果计数器为0,也就是没有第二类的数字 
	  cout<<"N "; //就输出'N' 
	else //有第二类的数字 
	  cout<<s2<<" "; //输出利用奇偶数性质求加减的和差s2
	//输出第三类数字: 
	if(s3==0) //如果计数器为0,也就是没有第三类的数字 
	  cout<<"N "; //输出'N' 
	else //如果有第三类的数字 
	  cout<<s3<<" "; //输出第三类数字的个数s3 
	//输出第四类数字: 
	if(j==0) //如果计数器为0,也就是没有第四类的数字 
	  cout<<"N "; //输出'N' 
	else //如果有第四类的数字 
	  printf("%.1lf ",s4/(float)j); //利用printf输出第四类数字s4/第四类数字的个数,也就是平均数 
	//题目要求是输出1位小数,所以利用printf的时候要加%.1lf
	//输出第五类数字 
	if(y==0) //如果计数器为0,也就是没有第五类数字 
	  cout<<"N"; //输出'N' 
	else //如果有第五类数字 
	  cout<<s5; //输出第五位数字中最大的哪一个 
	return 0;
}

 总结:

  这道题看起来超级简单,连算法都不需要用,学过语法的都可以做出来,但是,这道题坑太多了,我都落入了好几次,需要非常的细致,比如说加上计数器等等等等,这些都是可能AC题目的关键!

题目链接:

PTA | 程序设计类实验辅助教学平台千名教师建设,万道高质量题目,百万用户拼题的程序设计实验辅助教学平台https://pintia.cn/problem-sets/994805260223102976/exam/problems/994805311146147840

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/85943.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Android 动态分区详解(六) 动态分区的底层机制

文章目录 1. Android 动态分区的两重含义2. device mapper 的原理3. linear 映射的原理3.1 多个设备映射示例3.2 `dmsetup create` 命令参数解释1. `dmsetup create` 命令2. 映射表格式解析3.3 单个设备映射示例1. 使用 dmsetup 映射单个设备2. 使用 dmctl 映射 super 设备本文…

二、物理层(二)传输介质和物理层设备

目录 2.1物理层概述 2.2导向型传输介质 2.2.1双绞线 2.2.2同轴电缆 2.2.3光纤 2.3非导向型传输介质 2.3.1无线电波 2.3.2微波 2.3.3红外线、激光 2.4物理层设备 2.4.1中继器 2.4.2集线器 2.1物理层概述 物理层考虑的是如何在连接到各种计算机的传输媒体上传输数据比…

推断统计 | 学习笔记 (全)

一.概率与概率分布 概率论&#xff1a;为解决不确定性问题提供方法 1.随机事件及其概率 基本概念 试验&#xff1a;在相同条件下&#xff0c;对事物或现象所进行的观察。特点是可以在相同的条件下重复进行&#xff1b;每次试验的可能结果不止一个&#xff0c;但试验的所有可…

QT—QString类

一、隐式共享 隐式数据共享机制去最大化资源有效利用和最小化复制克隆操作。隐式共享类当作为函数参数传递的时候&#xff0c;不仅安全而且效率很高&#xff0c;因为传递的时候只是传递的数据的指针&#xff0c;数据本身只当自己被修改的时候才会去复制。简称写时复制。数据相…

【AI with ML】第 2 章 :计算机视觉简介

&#x1f50e;大家好&#xff0c;我是Sonhhxg_柒&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流&#x1f50e; &#x1f4dd;个人主页&#xff0d;Sonhhxg_柒的博客_CSDN博客 &#x1f4c3; &#x1f381;欢迎各位→点赞…

前端大串讲,狂神,狂神,p6 01:00

一 概述 前端框架&#xff1a;vue、React、 uniapp(小程序)。前端脚手架&#xff1a;babel-cli、vue cli、webpack-cli服务器&#xff1a;node.js、java后端前端框架的用法&#xff1a; 方式1&#xff1a;用纯前端就可以独立的去完成一些前端项目的开发&#xff0c;并脱离于后…

正点原子 IMX6ULL 自学笔记(未完待续。。。)

一、Makefile 1、语法 目标…… : 依赖文件集合…… 命令 1 命令 2 …… 例子&#xff1a; 生成main可执行文件需要main.o input.o calcu.o&#xff0c;命令是gcc -o main main.o input.o calcu.o main: main.o input.o calcu.ogcc -o main main.o input.o calcu.omain.o: ma…

C++实现对象行为型-迭代器模式

1.1 基本概念 迭代器模式&#xff08;Iterator Pattern&#xff09;&#xff1a;提供了一种方法来访问聚合对象&#xff0c;而不用暴露这个对象的内部。 聚合对象的两个基本功能&#xff1a; &#xff08;1&#xff09;存储内部数据&#xff1b; &#xff08;2&#xff09;…

MySQL表的进阶知识

目录 一、数据库约束 1、not null 2、unique 3、primary key 4、auto_increment 5、default 6、foreign key 7、check 二、插入数据 三、设计表 1、一对一 2、一对多 3、多对多 四、查询 1、聚合查询 a、聚合函数查询 b、group by c、having 2、联合查…

pikachu靶场-8 越权漏洞

越权漏洞 越权漏洞概述 由于没有对用户权限进行严格的判断&#xff0c;导致低权限的账号&#xff08;比如普通用户&#xff09;可以去完成高权限账号&#xff08;比如超级管理员&#xff09;范围内的操作 平行越权&#xff1a;A用户和B用户属于同一级别用户&#xff0c;但各…

虚拟主播怎么做出来的?今日安利:AI虚拟人物怎么弄?

某天&#xff0c;一位品牌店的老板向我寻求帮助&#xff0c;大概内容就是&#xff1a;“他最近要开拓线上店铺的直播渠道&#xff0c;直播时间较长&#xff0c;雇一位主播又费钱又辛苦&#xff0c;想制作一个符合品牌调性的AI虚拟人物来带货。”于是我跟他分享了制作虚拟主播的…

北京医保定点医院2022年版

文章目录概述官方查询方法49家A类定点医院政府公告初始19家2021年4月新增13家A类医院2021年11月新增7家A类医院2022年6月新增10家A类医院定点中医/专科医院定点社区卫生服务机构附录问题医保电子凭证4家定点医院的查询和修改北京医保个人账户资金定向使用北京医院排行榜单概述 …

基于BINN算法的CCPP全路径覆盖算法

1.CCPP整体算法文档 1.1 ccpp基础介绍 全路径覆盖算法&#xff08;CCPP: Complete Coverage Path Planning&#xff09;作为扫地机器人较为关键的组成部分&#xff0c;其问题的本质是&#xff1a;在栅格地图中,全覆盖路径规划问题就演变为寻找机器人的下一个移动位置,只有准确…

java计算机毕业设计ssm职工社保信息管理系统t22xh(附源码、数据库)

java计算机毕业设计ssm职工社保信息管理系统t22xh&#xff08;附源码、数据库&#xff09; 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#…

建设银行互联网经营战略优化方案设计

目 录一、绪论 1 &#xff08;一&#xff09;项目背景 1 &#xff08;二&#xff09;项目意义 1 &#xff08;三&#xff09;项目内容和方法 1 二、互联网金融与我国商业银行概述 3 &#xff08;一&#xff09;互联网金融的内涵 3 &#xff08;二&#xff09;互联网金融的功…

【云计算与大数据计算】Hadoop MapReduce实战之统计每个单词出现次数、单词平均长度、Grep(附源码 )

需要全部代码请点赞关注收藏后评论区留言私信~~~ 下面通过WordCount&#xff0c;WordMean等几个例子讲解MapReduce的实际应用&#xff0c;编程环境都是以Hadoop MapReduce为基础 一、WordCount WordCount用于计算文件中每个单词出现的次数&#xff0c;非常适合采用MapReduce进…

描述统计 | 学习笔记 (全)

一.导论 统计学是通过收集&#xff0c;整理&#xff0c;分析&#xff0c;描述数据等手段&#xff0c;以达到推断所测对象的本质&#xff0c;甚至预测对象未来的一门综合性科学。其目的是探索数据的内在数量规律性&#xff0c;以达到对客观事物的科学认识 统计的本业是消化数据…

一种近红外I区荧光染料ICG-CBT 主要应用领域,是药品监督管理局(FDA)批准的体内应用染料

英文名称:ICG-CBT 保存条件:-20℃ 产品类别:化学试剂 结构式&#xff1a; 产品描述&#xff1a;&#xff08;ICG&#xff09;是一种近红外I区荧光染料[1]&#xff0c;是药品监督管理局&#xff08;FDA&#xff09;批准的体内应用染料。其激发和发射波长分别在785 nm、810 nm…

【C++初阶7-stringOJ】上手用一下

前言 本期通过几道OJ题&#xff0c;上手用用string。 1. 把字符串转换成整数 描述 将一个字符串转换成一个整数&#xff0c;要求不能使用字符串转换整数的库函数。 数值为 0 或者字符串不是一个合法的数值则返回 0 数据范围&#xff1a;字符串长度满足0 ≤ n ≤100 进阶&am…

【读书笔记】万物原理——打开客观世界与主观情感的大门

被尹烨老师推荐种草的&#xff0c;以为是一本讲生命科学的科普书&#xff0c;看上了又以为是说量子物理等高端科学研究的&#xff0c;最后被互补性理论惊到了。这哪里只是一本打开认知客观世界的大门&#xff0c;还让我重识内心。那些看不见摸不着的情感&#xff0c;比如同情心…