题目链接
https://www.nowcoder.com/exam/oj/ta?tpId=37
HJ7 取近似值
通过代码一
Java提供的四舍五入的方法 Math.round()
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
double d;
int i;
while(in.hasNext()){
d = in.nextDouble();
System.out.println(Math.round(d));
}
}
}
通过代码二
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
double d;
double i;
while(in.hasNext()){
d = in.nextDouble();
i = Math.floor(d);
if(d-i>=0.5){
System.out.println(((int)d)+1);
}else{
System.out.println((int)d);
}
}
}
}
Java中的取整函数
-
向下取整 Math.floor() :返回的整数要小于等于原数
-
向上取整 Math.ceil():返回的整数要大于等于原数
-
接近取整 Math.rint():1.6->2,1.4->1,1.5和1、2都很接近,就取偶数
-
类型强转,(int)double,(int)float,这种方法会直接截取小数后面的部分
HJ9 提取不重复的整数
通过代码
import java.util.Scanner;
import java.util.LinkedHashSet;
import java.util.Iterator;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int i;
while (in.hasNext()) {
i = in.nextInt();
LinkedHashSet<Integer> set = new LinkedHashSet<>();
while(i!=0){
set.add(i%10);
i/=10;
}
Iterator<Integer> it = set.iterator();
while(it.hasNext()){
System.out.print(it.next());
}
System.out.println();
}
}
}
HJ46 截取字符串
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String str;
int k;
while (in.hasNext()) {
str = in.next();
k = in.nextInt();
System.out.println(str.substring(0,k));
}
}
}
HJ58 输入n个整数,输出其中最小的k个
import java.util.Scanner;
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int N,k;
while (in.hasNext()) {
N = in.nextInt();
k = in.nextInt();
int[] arr = new int[N];
for(int i=0;i<N;i++){
arr[i] = in.nextInt();
}
Arrays.sort(arr);
for(int i=0;i<k;i++){
if(i!=0){
System.out.print(" ");
}
System.out.print(arr[i]);
}
System.out.println();
}
}
}
HJ101 输入整型数组和排序标识,对其元素按照升序或降序进行排序
import java.util.Scanner;
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int N;
int flag;
while (in.hasNext()) {
N = in.nextInt();
int[] arr = new int[N];
for (int i = 0; i < N; i++) {
arr[i] = in.nextInt();
}
flag = in.nextInt();
Arrays.sort(arr);
if (flag == 0) {
for (int i = 0; i < N; i++) {
if (i != 0) {
System.out.print(" ");
}
System.out.print(arr[i]);
}
System.out.println();
} else if (flag == 1) {
for (int i = N - 1; i >= 0; i--) {
if (i != N - 1) {
System.out.print(" ");
}
System.out.print(arr[i]);
}
System.out.println();
}
}
}
}