42.整数中1出现的次数

42.整数中1出现的次数

题目描述

求出113的整数中1出现的次数,并算出1001300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数(从1 到 n 中1出现的次数)。

输入

13

返回值

6

分析

1.将输入的数字从n到1遍历一次,把它拼接成一个字符串

2.因为String的最大长度是65534,而int的最大范围是2^31,

3.然后在查找1即可

代码实现

   public class Solution {
    
    
        public  int NumberOf1Between1AndN_Solution(int n) {
    
    
    		StringBuilder a = new StringBuilder();
    		for(int i=n;i>0;i--) {
    
    
    			a.append(String.valueOf(i));
    		}
    	    a.toString();
    	    int res = 0;
    	    for(int i=0;i<a.length();i++) {
    
    
    	    	if(a.charAt(i)-'0'==1) {
    
    
    	    		res++;
    	    	}
    	    }
    	    return res;
        }
    }


猜你喜欢

转载自blog.csdn.net/qq_45874107/article/details/115161016
今日推荐