升數字就是從左向右讀,數值是依次上升的即可,比如123,1256,1389,
但是1123,165就不是。
以下是我的思路
public static void main(String[] args) {/*** 【請問1到10000之前,有多少升數字?】* 升數字就是從左向右讀,數值是依次上升的即可,比如123,1256,1389,* 但是1123,165就不是。*/String strZs = null;Integer maxLngth = 0;int count = 0;//數量for(int i = 10;i<10000;i++) {//將int類型轉成String類型strZs = String.valueOf(i);//定義該長度到數組String[] arr = new String[strZs.length()];//遍歷將字符串賦值到數組中for(int j = 0;j<strZs.length();j++){arr[j] = strZs.substring(j, j+1);}boolean flag = isSort(arr);//如果是。打印,并將總數++if(flag){count++;System.out.println(i);}}System.out.println("數值是依次上升數量count="+count);}/*** 判斷是不是生序數組* @param arr* @return*/private static boolean isSort(String[] arr) {for(int pxIndex =0;pxIndex<arr.length-1;pxIndex++) {// System.out.println(arr[pxIndex]);if (arr[pxIndex].compareTo(arr[pxIndex + 1]) > -1) {return false;}}return true;}
如有更好的解決方式,請隨時溝通
?