PAT1012 数字分类 分数 20

该篇博客介绍了一个C++代码实现,用于处理数字分类。根据数字对5的余数,将数字分配到不同类别并计算特定统计信息。代码包括了对不同情况的判断,如偶数且能被5整除的数字、奇数个数的5的倍数等。此外,还分享了代码优化技巧,如使用printf控制小数精度和利用标准库函数max。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1012 数字分类
分数 20
作者 CHEN, Yue
单位 浙江大学
在这里插入图片描述

输入样例 113 1 2 3 4 5 6 7 8 9 10 20 16 18
输出样例 130 11 2 9.7 9
输入样例 28 1 2 4 5 6 7 9 16
输出样例 2:
N 11 2 N 9

我的代码(26行ac):

#include<iostream>
#include<cstdio>
using namespace std;
int main(){
	int n;	cin>>n;
	int a1 = 0,a2 = 0,a3 = 0,a5 = 0;double a4;
	int ans[6] = {0}; 
	for(int i=0;i<n;++i){
		int num; cin>>num;
		if(num%5==0&&num%2==0)	++ans[1],a1 += num;//条件 
		if(num%5==1){
			++ans[2];
			if(ans[2]&1)	a2 += num;
			else		a2 -= num;
		}
		if(num%5==2)	++ans[3],++a3;
		if(num%5==3)	++ans[4],a4 += num;
		if(num%5==4&&num>a5)	++ans[5],a5 = num;//或者#include<algorithm>然后a5 = max(a5,num); 
	}
	if(ans[1]==0)	cout<<"N ";else	cout<<a1<<" ";
	if(ans[2]==0)	cout<<"N ";else	cout<<a2<<" ";
	if(ans[3]==0)	cout<<"N ";else	cout<<a3<<" ";
	if(ans[4]==0)	cout<<"N ";else	printf("%.1lf ",a4*1.0/ans[4]);//精确到小数点后一位-->printf来做到 
	if(ans[5]==0)	cout<<"N";else cout<<a5;//没有空格 					
	return 0;
} 

ps:
1.1位小数用printf控制,#include[cstdio];
2.最大可以调用函数max(a,b),#include[algorithm],免得自己写;
3.注意空格,注意判断条件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值