1012. 数字分类

xiaoxiao2021-02-28  138

一、题目

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

二、个人理解

此题主要考察简单的数学计算。


关键点:

首先写计算时,注意细心。判断有无时,注意题目中A2不能靠值是否为0判断,需引入计数器。
#include <stdio.h> int main() { int num; scanf("%d",&num); int c; int a1=0,a2=0,a3=0,a5=0; float a4=0; int count1=1,count3=0;//因为只有A2值为0的时候判断不出,故计入计数;A4则需要个数求平均值。 int i; //按部就班的计算 for(i=0; i<num; i++) { scanf("%d",&c); switch (c%5) { case 0: { if(c%2==0) { a1+=c; } break; } case 1: { if(count1%2==1) { a2+=c; count1++; } else { a2-=c; count1++; } break; } case 2: { a3++; break; } case 3: { a4+=c; count3++; break; } case 4: { if(c>a5) { a5=c; } break; } } } //格式化输出,注意空格 if(a1==0) { printf("%c ",'N'); } else { printf("%d ",a1); } if(a2==0&&count1==1) { printf("%c ",'N'); } else { printf("%d ",a2); } if(a3==0) { printf("%c ",'N'); } else { printf("%d ",a3); } if(a4==0) { printf("%c ",'N'); } else { printf("%.1f ",a4/count3); } if(a5==0) { printf("%c",'N'); } else { printf("%d",a5); } }
转载请注明原文地址: https://www.6miu.com/read-68962.html

最新回复(0)