Java解决数位递增的数
01 题目
-
一个正整数如果任何一个数位不大于右边相邻的数位,则称为
个数位递增的数。- 例如 1135 是一个数位递增的数,而 1024 不是一个数位递增的数。
-
给定正整数n,请问在整数 1 至 n 中有多少个数位递增的数?
-
输入描述
- 输入的第 行包含一个整数n(1 < n < 10)
-
输出描述
- 输出一行包含一个整数,表示答案
-
输入输出样例
-
输入
30 -
输出
26
-
-
运行限制
- 最大运行时间: 1s
02 知识点
- 数学
- 循环
03 我的题解思路
public class numberIncreasing {public static void main(String[] args) {Scanner scan = new Scanner(System.in);int n=scan.nextInt();//获取正整数nint rs=0;//返回值,记录合格的数for (int i = 1; i < n; i++) {//循环n次,找到合格的值if(checkMe(i)) {rs++;}}System.out.println(rs);//输出scan.close();}public static boolean checkMe(int n) {int right=n%10;//先获得个位的值n/=10;//除十方便循环时获取十位while(n>0) {int left=n%10;//获取十位if(left>right) {//找不合格的值,不合格退出循环return false;}n/=10;//除十获取下一位right=left;//右边等于左边,值左移}return true;//循环结束,这个值符合要求}
}