1-取近似值
写出一个程序,接受一个正浮点数值,输出该数值的近似整数值。如果小数点后数值大于等于 0.5 ,向上取整;小于 0.5 ,则向下取整。
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
float a = sc.nextFloat();
System.out.println(a-(int)a>=0.5?(int)a+1:(int)a);
}
}
2-提取不重复的整数
输入一个 int 型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。
保证输入的整数最后一位不是 0
//解法1
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
StringBuffer sb = new StringBuffer(str);
sb.reverse();
Set<String> set = new HashSet<>();
for(int i = 0;i<sb.length();i++){
if(set.add(sb.substring(i,i+1))){
System.out.print(sb.substring(i,i+1));
}
}
}
}
//解法2
import java.util.*;
public class Main{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
// 使用HashSet来判断是否是不重复的
HashSet<Integer> hs = new HashSet<>();
int target = sc.nextInt();// 获取代求解的值
while(target != 0){ // 求解每位上面的整数
int temp = target % 10;
if(hs.add(temp)) // 如果能加入,就是说明没有重复
System.out.print(temp);
target /= 10;// 除10能去掉最右边的数字
}
System.out.println();
}
}
}
3-截取字符串
输入一个字符串和一个整数 k ,截取字符串的前k个字符并输出
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
// 输入字符串和k
String str = sc.next();
int k = sc.nextInt();
// 直接使用String的substring方法输出结果
System.out.println(str.substring(0,k));
}
}
}
4-输入n个整数,输出其中最小的k个
输入n个整数,找出其中最小的k个整数并按升序输出
//方法1
import java.util.*;
public class Main{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
String s1 = sc.nextLine();
String s2 = sc.nextLine();
String[] s3 = s1.split(" ");
String[] s4 = s2.split(" ");
int n = Integer.parseInt(s3[0]);
int k = Integer.parseInt(s3[1]);
int[] data = new int[n];
for(int i = 0; i<n; i++){
data[i] = Integer.parseInt(s4[i]);
}
Arrays.sort(data);
for (int i = 0; i < k; i++) {
System.out.print(data[i]+" ");
}
}
}
}
5-输入整型数组和排序标识,对其元素按照升序或降序进行排序
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
int n = sc.nextInt();//接收数组长度
int[] arr = new int[n];//创建数组
for (int i = 0; i < n; i++) {//数组填入
arr[i] = sc.nextInt();
}
int flag = sc.nextInt();//接收排序标识
Arrays.sort(arr);//数组排序
if (flag == 0) {//正序输出
for(int i =0; i < arr.length; i++){
System.out.print(arr[i] + " ");
}
}
else {//逆序输出
for(int i = arr.length - 1; i >= 0; i--){
System.out.print(arr[i] + " ");
}
}
}
}
}