递增数

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

问: 给定正整数 n,请问在整数 1 至 n 中有多少个数位递增的数?
输入格式: 输入的第一行包含一个整数 n。
输出格式: 输出一行包含一个整数,表示答案。
样例输入: 30
样例输出: 26

public class tset {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int count = 0;
		
		for (int i = 1; i <= n ; i++) {
			if(f(i)) {
				count++;
			}
		}
		System.err.println(count+"\n");
		
	}
	static boolean f(int i) {
		if(i<10) {
			return true;
		}
		StringBuilder sb = new StringBuilder(i+"");
		for (int j = 1; j < sb.length(); j++) {
			if(sb.charAt(j-1)>sb.charAt(j)) {
				return false; 
			}
		}
		return true;
	}
}

代码注释:
charAt: charAt() 方法用于返回指定索引处的字符。索引范围为从 0 到 length() - 1。
语法:

public char charAt(int index)

实例:

public class Test {
    public static void main(String args[]) {
        String s = "www.runoob.com";
        char result = s.charAt(6);
        System.out.println(result);
    }
}

结果:

n

StringBuilder sb = new StringBuilder(); 的用法和作用:

  • 用法
  • 效率
    用法: StringBuilder对象则代表一个字符序列可变的字符串,当一个StringBuffer被创建以后,通过StringBuffer提供的append()、insert()、reverse()、setCharAt()、setLength()等方法可以改变这个字符串对象的字符序列。一旦通过StringBuffer生成了最终想要的字符串,就可以调用它的toString()方法将其转换为一个String对象。
    效率:
//第一种方法
StringBuilder sb=new StringBuilder();
sb.Append("123");
sb.Append("456");
string str=sb.ToString();
// 第二种方法
string s1=“123”;
string s2=“456”;
string str=s1+s2;
// 处理大规模的字符串的时候第二种方法效率会变低。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值