题面

 一个正整数如果任何一个数位不大于右边相邻的数位,则称为一个数位递增的数, 例如1135是一个数位递增的数,而1024不是一个数位递增的数。 给定正整数 n,请问在整数 1 至 n 中有多少个数位递增的数?

输入

输入n

输出

输出整数 1 至 n 中数位递增的数的个数

样例输入

1135

样例输出

239

代码

import java.util.Scanner;

public class Main {
    public static boolean is_increase (int i) {
        int x = 10;
        while(i != 0) {
            if(x >= i % 10) {
                x = i % 10;
                i /= 10;
            } else {
                return false;
            }
        }
        return true;
    }
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int cnt = 0;
        int n = sc.nextInt();
        for(int i = 1; i <= n; ++i) {
            if(is_increase(i)) {
                cnt ++;
            }
        }
        System.out.println(cnt);
    }
}
立志成为一名攻城狮
最后更新于 2020-07-08