求小于N的正整数中含有1的数字的个数

2014-11-24 09:44:18 · 作者: · 浏览: 1

比如:如果n= 11,那么返回3.因为有1 ,10 ,11

下面是具体实现的代码

[java]
/**
* 判断小于10000的数中含有1的正整数的个数
* @param number
* @return
*/
public static int countOne(int number) {
//统计1的个数
int sum = 0;
//把数字转换成字符
String end = String.valueOf(number);

int i = 1;
String begin = String.valueOf(1);

// for (; begin.compareTo(end) != 0; ) {
// //如果包含1就递增
// if (begin.contains("1")) {
// sum++;
// }
// i++;
// begin = String.valueOf(i);
// }

while(begin.compareTo(end) != 0){
if (begin.contains("1")) {
sum++;
}
i++;
begin = String.valueOf(i);
}

return ++sum;
}

public static void main(String[] args) {
int number = 41;
System.out.println(countOne(number));
}