蓝桥模拟赛 递增位数 JAVA

一个正整数如果任何一个数位不大于右边相邻的数位,则称为一个数位递增的数,例如1135是-个数位递增的数,而1024不是一个数位递增的数。

给定正整数n,请问在整数1至n有多少个数位递增的数?

输入格式

输入的第一行包含一个整数 n。输出格式

输出一行包含一个整数,示答案。样例输入

30

样例输出

26

思路:转换成字符串->排序->字符串拼接->转换int类型判断->初始化->输出

	public static void main(String[] args) {
     
		Scanner scanner = new Scanner(System.in);
		int n = scanner.nextInt();
		String string = "";                       // 定义一个字符空串
		int ans = 0;                              // 统计值
		for (int i = 1; i <= n; i++) {
     
			char[] a = (i + "").toCharArray();    // i+"" int强转字符类型
			Arrays.sort(a);                       // 排序
			for (int j = 0; j < a.length; j++) {
       
				string += a[j];                   // 字符串拼接
			}
			if (Integer.parseInt(string)==i) {
         // 强转int类型,=i说明数字一样,否则不做统计
				ans++;
			}
			string = "";                          // 初始化
		}
		System.out.println(ans);	
	}

小剧场:有梦想就要奋力追逐。

你可能感兴趣的:(蓝桥杯,java)