数字分类
输入格式:
每个输入包含 1 个测试用例。每个测试用例先给出一个不超过 1000 的正整数 N,随后给出 N 个不超过 1000 的待分类的正整数。数字间以空格分隔。
输出格式:
对给定的 N 个正整数,按题目要求计算 A 1 ~A 5 并在一行中顺序输出。数字间以空格分隔,但行末不得有多余空格。
若其中某一类数字不存在,则在相应位置输出 N。
输入样例:
13 1 2 3 4 5 6 7 8 9 10 20 16 18
输出样例:
30 11 2 9.7 9
思路:
依次对每个数字进行判断,并把结果记录进数组中,依次输出即可。
实现:
#include <iostream>
using namespace std;
void test()
{
int a[5] = { 0 };
int c[5] = { 0 };
int q;
cin >> q;
for (int i = 0; i < q; i++)
{
int get;
cin >> get;
if (get % 5 == 0&&get%2==0)
{
c[0]++;
a[0]+= get;
}
else if (get % 5 == 1)
{
if (c[1] % 2 == 0)
a[1] += get;
else
a[1] -= get;
c[1]++;
}
else if (get % 5 == 2)
{
c[2]++;
}
else if (get % 5 == 3)
{
c[3]++;
a[3] += get;
}
else
{
if (get > c[4])
a[4] = get;
c[4]++;
}
}
int aa=0;
for (int i = 0; i < 5; i++)
{
if(aa!=0)cout<<" ";
if (c[i] != 0&&i!=2&&i!=3)
{
cout << a[i];
}
else if (c[i] != 0 && i == 2)
{
cout << c[i];
}
else if (c[i] != 0 && i == 3)
{
printf("%.1f", (double)a[i] / c[i]);
}
else if(c[i]==0)
{
cout << "N";
}
aa=1;
}
}
int main()
{
test();
return 0;
}