乙级PAT之数字分类(字符串类型的格式化)

Posted zws-bugging

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了乙级PAT之数字分类(字符串类型的格式化)相关的知识,希望对你有一定的参考价值。

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

输入例子:
13 1 2 3 4 5 6 7 8 9 10 20 16 18

输出例子:
30 11 2 9.7 9

  

package abc;

import java.util.Scanner;

public class Main {
  public static void main(String [] args) {
	  Scanner input = new Scanner(System.in);
	  int t = input.nextInt();
	  int a[] = new int[5];
	  for(int i=0;i<a.length;i++) {  
		  a[i]=0;
	  }
	  int tnt=0;
	  int tnt2=0;
	  for(int i=0;i<t;i++) {
		  int x = input.nextInt();
		  if(x%10==0) a[0]+=x;
		  if(x%5==1) {
			  a[1] += x*Math.pow(-1,tnt);/// 利用平方来控制正负
			  tnt++;
		  }
	      if(x%5==2) a[2]++;
	      if(x%5==3) {
	    	  a[3]+=x;tnt2++;
	      }
	      if(x%5==4) {
	    	  if(a[4]<x) a[4]=x;
	      }
	  }
	  double a4 = (double)a[3]/tnt2;
	  String s=String.format("%.1f", a4);///字符串类型格式化,类似c语言的printf
	  StringBuffer sbu = new StringBuffer();
	  for(int i=0;i<a.length;i++) {
		  if(a[i]==0) sbu.append("N ");
		  else {
			  if(i==3) sbu.append(s+" ");///append用于字符串后面追加字符串
			  else sbu.append(a[i]+" ");
		  }
	  }
	  System.out.println(sbu.toString().trim());///toString()转化为字符串,trim()去掉两边的空格。
  }
}

  

以上是关于乙级PAT之数字分类(字符串类型的格式化)的主要内容,如果未能解决你的问题,请参考以下文章

PAT乙级.1012.数字分类

PAT乙级 1012. 数字分类 (20)

PAT乙级真题之数字黑洞(数位字符排序数组函数)

PAT乙级题库“傻瓜”题解之划拳

Day014 PAT乙级 1012 数字分类

PAT-乙级-1012 数字分类