今天写了九道简单题,总结一下知识点。
- 输出保留两位小数
我在做题时最常用的有两种。
double num = 3.14159;
System.out.printf("%.2f",num);
java.text.DecimalFormat f = new java.text.DecimalFormat("0.00");
System.out.println(f.format(num));
- 不考虑单词大小写比较内容是否相同
String str1 = "hello";
String str2 = "HELLo";
System.out.println(str1.compareToIgnoreCase(str2)); // 0,0代表字符串内容相同
- 统计字符串中不同单词个数
将字符串分割成字符串数组。
两个 for 循环,外层循环从第一个单词遍历到最后一个,内层用来判断外层的单词是否与其他单词相同。如果不同,则计数。那相同的会不会没有被记一次呢?答案是被记了,因为重复的单词最后一次出现时,后面已经没有与之重复的了,此时count+1
int count = 0;
for(int i=0;i<arr.length;i++) {
boolean flag = true;
for(int j =i+1;j<arr.length;j++) {
if(arr[i].equalsIgnoreCase(arr[j])) {
flag = false;
break;
}
}
if(flag)count++;
flag = true;
}
- 对数组排序
Arrays.sort(arr);
- a<b<c 且 a+b+c<=1000的勾股数。
对于三条边之和小于1000的勾股数,a<333 , b<500 , c<1000。
- 分数统计
题目描述:
给定一个百分制成绩T,将其划分为如下五个等级之一:
90~100为A,80~89为B,70~79为C,60~69为D,0~59为E
现有若干百分制成绩(成绩个数不超过1000个),请你统计五个等级段的人数,并找出人数最多的那个等级段,按照从大到小的顺序输出该段中所有人成绩(保证人数最多的等级只有一个)。
输入:
第一行是成绩的个数 n
第二行是学生的成绩,若干0~100的正整数,用空格隔开
输出:
第一行为5个正整数,分别表示A,B,C,D,E五个等级段的人数
第二行一个正整数,表示人数最多的等级段中人数
接下来一行若干个用空格隔开的正整数,表示人数最多的那个等级中所有人的分数,按从大到小的顺序输出。
样例输入:
10 100 80 85 77 55 61 82 90 71 60
样例输出:
2 3 2 2 1 3 85 82 80
思路分析: 将输入的数字存放进数组,对数组排序,利用 for 循环遍历数组中的分数并用if 语句判断分数的范围统计每个等级出现的次数,找出次数最大的等级,利用循环输出。
package day2_10;
import java.util.Arrays;
import java.util.Scanner;
public class Main1500true {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] arr = new int[n];
for(int i=0;i<n;i++) {
arr[i] = sc.nextInt();
}
int sum1=0,sum2=0,sum3=0,sum4=0,sum5=0;
Arrays.sort(arr);
for(int j=0;j<n;j++) {
if(arr[j]<60) {
sum1++;
}else if(arr[j]>=60&&arr[j]<70) {
sum2++;
}else if(arr[j]>=70&&arr[j]<80) {
sum3++;
}else if(arr[j]>=80&&arr[j]<90) {
sum4++;
}else sum5++;
}
int p=Math.max(sum5, Math.max(sum4, Math.max(sum3, Math.max(sum1, sum2))));
System.out.println(sum5+" "+sum4+" "+sum3+" "+sum2+" "+sum1);
System.out.println(p);
for(int i=p;i>0;i--) {
if(p==sum1) {
System.out.print(arr[i-1]+" ");
}else if(p==sum2) {
System.out.print(arr[i+sum1-1]+" ");
}else if(p==sum3) {
System.out.print(arr[i+sum1+sum2-1]+" ");
}else if(p==sum4) {
System.out.print(arr[i+sum1+sum2+sum3-1]+" ");
}else {
System.out.print(arr[i+sum1+sum2+sum3+sum4-1]+" ");
}
}
System.out.println();
}
}