Java题解—1012 数字分类 (20 分)
2021/10/14 17:14:41
本文主要是介绍Java题解—1012 数字分类 (20 分),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
原题
跳转地址
给定一系列正整数,请按要求对数字进行分类,并输出以下 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。
代码
package pat; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int N = scanner.nextInt(); int case0=0,case1=0,case2=0,case3=0,case4=0;//接收每种情况的结果 boolean flag0=false,flag1=false,flag2=false,flag3=false,flag4=false;//标志某类数字是否存在 int count=0; int massage1=0; //条件判断 for (int i=0;i<N;i++){ int num = scanner.nextInt(); switch (num%5){ case 0:if (num%2==0){ case0+=num; flag0=true; } break;//注意,break要放if外面,才能跳出switch case 1: massage1++;//计数用来交叉求和。因为奇数是加,偶数是减 if (massage1%2==0){ case1-=num; }else { case1+=num; } flag1=true; break; case 2:case2++;flag2=true;break; case 3: case3+=num; flag3=true; count++; break; case 4: if (num>case4){ case4=num; flag4=true; } break; } } //输出 Object o;//注意:三元运算符与if不同的是,必须有一个变量来承载后面表达式的结果 o=flag0 ? System.out.printf(case0+" "):System.out.printf("N "); o=flag1 ? System.out.printf(case1+" "):System.out.printf("N "); o=flag2 ? System.out.printf(case2+" "):System.out.printf("N "); double average=(double)case3/count; o=flag3 ? System.out.printf("%.1f",average):System.out.printf("N") ; o=flag4 ? System.out.printf(" "+case4):System.out.printf(" N"); } }
这篇关于Java题解—1012 数字分类 (20 分)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-25初学者必备:订单系统资料详解与实操教程
- 2024-12-24内网穿透资料入门教程
- 2024-12-24微服务资料入门指南
- 2024-12-24微信支付系统资料入门教程
- 2024-12-24微信支付资料详解:新手入门指南
- 2024-12-24Hbase资料:新手入门教程
- 2024-12-24Java部署资料
- 2024-12-24Java订单系统资料:新手入门教程
- 2024-12-24Java分布式资料入门教程
- 2024-12-24Java监控系统资料详解与入门教程