1. 程式人生 > 其它 >java實戰5:判斷遞增數個數

java實戰5:判斷遞增數個數

技術標籤:java演算法字串資料結構intellij idea

java實戰5:判斷遞增數個數

藍橋杯的一道題,寫完看了別人寫的,我覺得我寫的好笨啊,還是得多記些常用的函式。我這個是用陣列實現的,感覺怪麻煩的。

原題:
【問題描述】
一個正整數如果任何一個數位不大於右邊相鄰的數位,則稱為一個數位遞增的數,例如1135是一個數位遞增的數,而1024不是一個數位遞增的數。
給定正整數 n,請問在整數 1 至 n 中有多少個數位遞增的數?
【輸入格式】
輸入的第一行包含一個整數 n。
【輸出格式】
輸出一行包含一個整數,表示答案。
【樣例輸入】
30
【樣例輸出】
26
【評測用例規模與約定】
對於 40% 的評測用例,1 <= n <= 1000。

對於 80% 的評測用例,1 <= n <= 100000。
對於所有評測用例,1 <= n <= 1000000。

程式碼如下:

import java.util.Scanner;
public class blueSelf_5 {
    public static void main(String[] args) {
        Scanner reader=new Scanner(System.in);
        int n;
        n=reader.nextInt();
        int t=0;
        for(int p=1;p<=n;p++
){ String s; s= String.valueOf(p); int l=s.length(); int m;int k;int[] a=new int[l]; m=Integer.parseInt(s); k=m; //123 for(int i=1;i<=l;i++){//1//2//3 a[i-1]=k%10;//a[0]=3//a[1]=2//a[2]=1 k =
(k - (k % 10))/10;//k=12//k=1//k=0 } judgeIncrease j=new judgeIncrease(); if(j.ifIncrease(a)){ t++; } } System.out.println(t); } } class judgeIncrease { public boolean ifIncrease(int[] shuzu) { if (shuzu.length == 1) { return true; } else { for (int i = 1; i <= shuzu.length-1; i++) { if (shuzu[i-1] < shuzu[i]) { return false; } } return true; } } }

執行結果:
在這裡插入圖片描述