码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2020-02-02 10:22:20      阅读:116      评论:0      收藏:0      [点我收藏+]

标签:pen   最大数   控制   ati   输入   c语言   字符串   偶数   最大   

/*
数字分类
*/
给定一系列正整数,请按要求对数字进行分类,并输出以下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之数字分类(字符串类型的格式化)

标签:pen   最大数   控制   ati   输入   c语言   字符串   偶数   最大   

原文地址:https://www.cnblogs.com/zws-bugging/p/12251161.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!