1. 数字处理
题目描述:给出一个不多于5位的整数,进行反序处理,要求
(1)求出它是几位数
(2)分别输出每一个数字(空格隔开)
(3)按逆序输出各位数字(仅数字间以空格间隔,负号与数字之间不需要间隔)
输入描述:位数不大于5的整数
输出描述:1.整数位数 2.空格间隔输出结果 3.逆序整数
思路描述:直接进行正负数判断,分别进行处理
【code】
import java.util.Scanner; /** * Created by Administrator on 2018/3/21. */ public class NumberProcess { public static void main(String[] args) { Scanner in = new Scanner(System.in); while (in.hasNext()) { //输入 int n = in.nextInt(); //转换 String s = String.valueOf(n); char[] array = s.toCharArray(); if (n >= 0) { //输出长度 System.out.println(array.length); //分别输出每一个数字(空格隔开) for (int i = 0; i < array.length; i++) { System.out.print(array[i] + " "); } System.out.println(); //按逆序输出各位数字 for (int i = array.length - 1; i >= 0; i--) { System.out.print(array[i] + " "); } } else { //输出长度 System.out.println(array.length-1); //分别输出每一个数字(空格隔开) for (int i = 0; i < array.length; i++) { System.out.print(array[i] + " "); } System.out.println(); //按逆序输出各位数字,负号与数字之间不需要间隔 System.out.print(array[0]); for (int i = array.length - 1; i > 0; i--) { System.out.print(array[i]+" "); } } } in.close(); } }
【Result】
12345 5 1 2 3 4 5 5 4 3 2 1 -12345 5 - 1 2 3 4 5 -5 4 3 2 1
2. IP地址交集判断
题目描述:输入四个IP端,前两个为第一个IP段的起始和终止地址,后两个是第二个IP段的起始和终止地址,判断这两个IP段是否存在交集
输入描述:输入4个IP
输出描述:如果存在交集,输出 Overlap IP ; 如果不存在交集,输出 No Overlap IP
思路描述:开始看题目感觉不是很理解,看到IP地址觉得很复杂。其实真正了解了题意之后发现原来是想多了。将IP地址化成区间,判断两个区间是否存在交集就行了,高中数学。
【code】
import java.util.Scanner; /** * Created by Administrator on 2018/3/12. */ public class isMixed { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while (sc.hasNext()) { //输入 ['1.1.1.1','255.255.255.255','2.2.2.2','3.3.3.3'] String[] array = new String[4]; array[0] = sc.nextLine(); array[1] = sc.nextLine(); array[2] = sc.nextLine(); array[3] = sc.nextLine(); Long[] newArray = new Long[array.length]; //使用Long,Int会溢出 //函数 //分割,去掉.,组合 for (int i = 0; i < array.length; i++) { newArray[i] =Long.parseLong(joinChar(array[i])); } //判断 if(newArray[0]<=newArray[1] && newArray[2]<=newArray[3]){ if(newArray[3]<newArray[0] || newArray[2]>newArray[1]){ System.out.println("No Overlap IP"); }else{ System.out.println("Overlap IP"); } } } sc.close(); } public static String joinChar(String arr) { String newArr = ""; String[] s = arr.split("\."); for (int i = 0; i < s.length; i++) { newArr += s[i]; } return newArr; } }
【result】
1.1.1.1 255.255.255.255 2.2.2.2 3.3.3.3 Overlap IP
3. 数字排序
题目描述: 给定字符串内有很多正整数,要求对这些正整数进行排序,然后返回排序后指定位置的正整数,排序要求:按照每一个正整数的后三位数字组成的整数进行从小到大排序
(1)如果不足三位,则按照实际位数组成的整数进行比较
(2)如果相等,则按照输入字符中的原始顺序排序
说明:(1)字符串以‘