赞
踩
本题主要涉及日期的模拟和对回文数的判断,下面会结合Java的特性给出解答。
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int num = scanner.nextInt(); int ans1 = 0, ans2 = 0; boolean flag = false; while (true) { num = runTime(num); if (!flag && judge(num)) { ans1 = num; flag = true; } if (judge(num) && judge2(num)) { ans2 = num; break; } } System.out.println(ans1); System.out.println(ans2); scanner.close(); } public static boolean judge(int num) { String string = Integer.toString(num); StringBuffer stringBuffer = new StringBuffer(string.substring(4)); if (string.startsWith(stringBuffer.reverse().toString())) { return true; } return false; } public static boolean judge2(int num) { String string = Integer.toString(num); if (string.charAt(0) == string.charAt(2) && string.charAt(1) == string.charAt(3)) { return true; } return false; } public static int runTime(int num) { int year = num/10000, month = (num/100)%100, day = num%100; day++; if(day > 31) { day = 1; month ++; if (month > 12) { month = 1; year++; } } return year*10000+month*100+day; } }
运行时间还可以,算是提交代码中比较快的了(ง •_•)ง
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。