数字分类

数字分类 (20)

时间限制 1000 ms 内存限制 32768 KB 代码长度限制 100 KB 判断程序 Standard (来自 小小)
题目描述

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

输入例子:

13 1 2 3 4 5 6 7 8 9 10 20 16 18

输出例子:

30 11 2 9.7 9

#include<iostream>
#include<iomanip>
#include<stdlib.h>
#include<string>
using namespace std;
int main()
{
	int N;
	cin>>N;
	int a[N],b[5][N],i;
	for(int i=0;i<N;i++)
	cin>>a[i];
	int k=0,m=0,n=0,p=0,q=0;
	for(int i=0;i<N;i++)
	{
		if(a[i]%5==0&&a[i]%2==0)
		{
			b[0][k]=a[i];
			k++;
		}
		if(a[i]%5==1)
		{
			b[1][m]=a[i];
			m++;
		}
		if(a[i]%5==2)
		{
			b[2][n]=a[i];
			n++;
		}
		if(a[i]%5==3)
		{
			b[3][p]=a[i];
			p++;
		}
		if(a[i]%5==4)
		{
			b[4][q]=a[i];
			q++;
		}
	}
	int sum1=0;
	int sum2=0;
	float sum3=0.0;
	for(int i=0;i<k;i++)
	{
		sum1=sum1+b[0][i];
	}

	for(int i=0;i<m;i++)
	{
		if(i%2==1)
		{
			b[1][i]=-b[1][i];
		}
		sum2=sum2+b[1][i];
	}
	for(int i=0;i<p;i++)
	{
		sum3=sum3+b[3][i];
	}
	int max=b[4][0];
	for(int i=1;i<q;i++)
	{
		if(b[4][i]>max)
		max=b[4][i];
	}
	if(k==0)
	cout<<"N"<<" ";
	else cout<<sum1<<" ";
	if(m==0)
	cout<<"N"<<" ";
	else cout<<sum2<<" ";
	if(n==0)
	cout<<"N"<<" ";
	else cout<<n<<" ";
	if(p==0)
	cout<<"N"<<" ";
	else cout<<fixed<<setprecision(1)<<sum3/p<<" ";
	if(q==0)
	cout<<"N"<<endl;
	else cout<<max<<endl;
	

}
发布了46 篇原创文章 · 获赞 49 · 访问量 6242
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章