Java数字分类给定一系列正整数,请按要求对数字进行分类,并输出以下5个数字:A1 = 能被5整除的数字中所有偶数的和;A2 = 将被5除后余1的数字按给出顺序进行交错求和,即计算n1-n2+n3

简介: Java数字分类给定一系列正整数,请按要求对数字进行分类,并输出以下5个数字:A1 = 能被5整除的数字中所有偶数的和;A2 = 将被5除后余1的数字按给出顺序进行交错求和,即计算n1-n2+n3

题目描述:


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


9e3eba452aa74454891777bd97dad0ba.png


Java代码:


import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        int a1 = 0;
        int a2 = 0;
        int a3 = 0;
        double a4 = 0;
        int a5 = 0;
        int i = 0;
        int temp = 1;
        int count = 0;
        while (i++ < n){
            int value = scanner.nextInt();
            if (value % 5 == 0 && value % 2 == 0) a1 += value;
            if (value % 5 == 1){
                a2 += temp * value;
                temp *= -1;
            }
            if (value % 5 == 2) a3++;
            if (value % 5 == 3) {
                a4 += value;
                count++;
            }
            if (value % 5 == 4 && value > a5) a5 = value;
        }
        if (a1 != 0) System.out.print(a1 + " ");
        else System.out.print("N ");
        if (a2 != 0) System.out.print(a2 + " ");
        else System.out.print("N ");
        if (a3 != 0) System.out.print(a3 + " ");
        else System.out.print("N ");
        if (a4 != 0) System.out.format("%.1f ",a4/count);
        else System.out.print("N ");
        if (a5 != 0) System.out.print(a5);
        else System.out.print("N");
        scanner.close();
    }
}


相关文章
|
4天前
|
Java
【Java】如果一个集合中类型是String如何使用拉姆达表达式 进行Bigdecimal类型计算?
【Java】如果一个集合中类型是String如何使用拉姆达表达式 进行Bigdecimal类型计算?
29 0
|
4天前
|
存储 Java
Java 编程实例:相加数字、计算单词数、字符串反转、元素求和、矩形面积及奇偶判断
Java中相加两个数字可通过简单赋值实现,如`int sum = x + y;`。若要用户输入数字相加,可使用`Scanner`类读取。计算单词数,可使用`split()`方法或`StringTokenizer`类。反转字符串,可用`for`循环或`StringBuilder`的`reverse()`方法。计算数组元素总和,可遍历数组累加。矩形面积通过长度乘以宽度得出。判断奇偶性,利用模2运算或位运算检查最低位。更多内容,可关注微信公众号`Let us Coding`。
50 0
|
4天前
|
Java 调度
Java中常见锁的分类及概念分析
Java中常见锁的分类及概念分析
18 0
|
4天前
|
Java
java中,如何实现输入一个正整数,并将这个数字反转输出,比如输入123,输出321
java中,如何实现输入一个正整数,并将这个数字反转输出,比如输入123,输出321
16 0
java中,如何实现输入一个正整数,并将这个数字反转输出,比如输入123,输出321
|
4天前
|
Java
承压计算 Java
承压计算 Java
8 1
|
4天前
|
存储 安全 Java
Java集合的分类有哪些?
Java中的集合就像一个容器,专门用来存储Java对象,这些对象可以是任意的数据类型,并且长度可变。这些集合类都位于java.util包中,在使用时一定要注意导包的问题,否则会出现异常。
37 10
|
4天前
|
安全 Java
【亮剑】Java中的`Future`接口代表异步计算结果,常与`ExecutorService`配合启动任务并获取结果
【4月更文挑战第30天】Java中的`Future`接口代表异步计算结果,常与`ExecutorService`配合启动任务并获取结果。`Future`接口提供`isDone()`、`get()`、`get(timeout, unit)`和`cancel(mayInterruptIfRunning)`等方法。`FutureTask`是`Future`的实现类,可作为`Runnable`执行并返回结果。
|
4天前
|
Java
【专栏】Java多线程中,锁用于控制共享资源访问,确保数据一致性和正确性,锁是什么意思,有哪些分类?
【4月更文挑战第28天】Java多线程中,锁用于控制共享资源访问,确保数据一致性和正确性。本文探讨锁的概念、作用及分类:乐观锁与悲观锁、自旋锁与适应性自旋锁、公平锁与非公平锁、可重入锁和读写锁。使用锁需注意避免死锁、合理选择锁粒度及性能优化。理解锁有助于提升多线程编程的效率和稳定性。
|
4天前
|
算法 JavaScript Java
Java多线程+分治求和,太牛了
`shigen`,一位擅长Java、Python、Vue和Shell的博主,分享编程知识和成长体验。在一次面试中因对高并发问题准备不足而受挫,随后深入学习,研究了线程池和经典案例——计算1亿数字的和。采用分治策略,`shigen`实现了Java版的归并排序,并对比了Python的简洁实现。通过多线程和分段求和优化,展示了如何高效解决大数求和问题,引入了分治思想的递归任务来进一步提升性能。未来将探讨`forkjoin`框架。关注`shigen`,每天学习新知识!
22 0
Java多线程+分治求和,太牛了
|
4天前
|
Java
JAVA输入任意一个数字,实现递减求和(计算任意整数n的和)
JAVA输入任意一个数字,实现递减求和(计算任意整数n的和)
20 0