public class Main {
/**
* 已知一个整数n,写一个函数f(n),返回0~n间,每个数中出现的“1”的个数。
* 问最大的满足F(n)= n中n为多少
* @param args
*/
public static void main(String[] args) {
int n = 2;
int res = 1;
while((getOne(n) + res ) != n){
res += getOne(n);
++n;
}
System.out.println(n);
}
/**
* 计算这个数里含有“1”的个数
* @param n 需要计算的数字
* @return 1的个数
*/
private static int getOne(int n) {
// TODO Auto-generated method stub
int number = 0;
String string = n+"";
int len = string.length();
if(len != 0){
for(int i = 0;i<len;i++){
char a = string.charAt(i);
if (a == '1'){
number++;
}
}
}
return number;
}
}