给定 N 个正整数,要求你从中得到下列三种计算结果:
- A1 = 能被 3 整除的最大整数
- A2 = 存在整数 K 使之可以表示为 3K+1 的整数的个数
- A3 = 存在整数 K 使之可以表示为 3K+2 的所有整数的平均值(精确到小数点后 1 位)
输入格式:
输入首先在第一行给出一个正整数 N,随后一行给出 N 个正整数。所有数字都不超过 100,同行数字以空格分隔。
输出格式:
在一行中顺序输出 A1、A2、A3的值,其间以 1 个空格分隔。如果某个数字不存在,则对应输出NONE
。
输入样例 1:
8
5 8 7 6 9 1 3 10
输出样例 1:
9 3 6.5
输入样例 2:
8
15 18 7 6 9 1 3 10
输出样例 2:
18 3 NONE
相信很多刚学习的同学不知道怎么整理思路,其实很简单,题中每个数都要经历三种判断,所以我们可以用三次循环来进行判断和运行。
-
运行思路:
- 首先,通过
scanf
函数获取输入的数字个数N。 - 然后,使用
for
循环依次读取N个数字,并根据不同的取余结果进行处理:- 如果
num%3==0
,则更新A1为满足条件中的最大值。 - 如果
num%3==1
,则增加A2计数。 - 如果
num%3==2
,则增加A3计数,并累加该数字到sum
中。
- 如果
- 最后,根据不同的情况输出结果:
- 如果A1为0,则输出"NONE "。
- 如果A2为0,则输出"NONE "。
- 如果sum/A3为0,则输出"NONE"。
- 否则,分别输出A1的值、A2的值以及
sum/A3
的平均值(保留一位小数)。
- 首先,通过
这个时候我们先进行输入
此时N代表我们输入的整数个数,num代表整数的值,A1,A2,就是所要求的A1,A2,,但是A3是满足第三个条件的整数的个数,并不是最终A3的值,sum为求A3时我们所需要的所有满足要求的整数的累加和。
下面是三个循环
此时我们已经得到了A1 A2 A3 sum的值
接下来进行分类输出
因为我们输出时每个值中间需要空格,所以A1 A2 输出时后面需要加空格
如果觉得对你有帮助希望可以点赞收藏,如有错请联系更改