同学问我一个智力题,说有个老太太把她的密码箱的密码更改了,原密码和现密码都是四位数,而恰好,现密码是原密码数值的四倍,而且现密码正好是原密码四个数字的倒转,问密码是多少?
想了一会,没想出来,干脆用java遍历一遍好了主要代码:
1 public class TestMathGame { 2 public static void main(String[] args) { 3 String olderString; 4 String newerString; 5 String deOlderString; 6 for (int olderInt = 1; olderInt < 2500; olderInt++) { 7 int newerInt = 4 * olderInt; 8 olderString=String.valueOf(olderInt); 9 newerString=String.valueOf(newerInt); 10 deOlderString=reverseString(olderString); 11 12 if (newerString.equals(deOlderString)) { 13 System.out.println("the old password is "+olderString); 14 System.out.println("the new password is "+newerString); 15 } 16 } 17 } 18 //倒置字符串方法: 19 public static String reverseString(String str) 20 { 21 char[] arr=str.toCharArray(); 22 int middle = arr.length>>1;//EQ length/2 23 int limit = arr.length-1; 24 for (int i = 0; i < middle; i++) { 25 char tmp = arr[i]; 26 arr[i]=arr[limit-i]; 27 arr[limit-i]=tmp; 28 } 29 return new String(arr); 30 } 31 }
其中倒置字符串方法是在某个csdn博客看到的,嘿嘿