PAT乙级1012 数字分类

1012. 数字分类 (20)

时间限制
100 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
CHEN, Yue

给定一系列正整数,请按要求对数字进行分类,并输出以下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
 
  
 
  
 
  
#include<stdio.h>
#define size 6
#include <string.h>
int main(void)
{
	

	int count[size];
	int sum[size];
	memset(count, 0, sizeof(count));
	memset(sum, 0, sizeof(sum));
	int num;
	scanf("%d", &num);
	int sign = 1;
	while (num--)
	{ 
		int a;
		scanf("%d", &a);
		if (a % 5 == 0 && a % 2 == 0)
		{
			sum[1] += a;
			count[1]=1;
		}
		else if (a%5 == 1)
		{
			count[2] = 1;
			a*= sign;
			sum[2] +=a;
			sign = -sign;
		}
		else if (a % 5 == 2)
		{
			count[3]=1;
			sum[3]++;
		}
		else if (a % 5 == 3)
		{
			sum[4] += a;
			count[4]++;
		}
		else if(a%5==4)
		{
			if (a > sum[5])
			{
				sum[5] = a;
			}
			count[5] = 1;
		}
	}
	


	int pause = 1;
	for (int i = 1; i < size; i++)
	{
		if (pause)
		{
			pause = 0;
		}
		else
		{
			printf(" ");
		}
		if (i == 4)
		{	
			if (count[4])
			{
				printf("%.1lf", sum[4] * 1.0 / count[4]);
			}
			else
			{
				printf("N");
			}
			continue;
		}
		if (count[i] == 0)
		{
			printf("N");
		}
		else
		{
			printf("%d", sum[i]);
		}
	}

	return 0;
}


猜你喜欢

转载自blog.csdn.net/sinat_37273780/article/details/56489286