原谅我只会最垃圾的办法,难受啊,马飞!!这种方法的思路就是一次次的除10取余数,余数是1就+1,效率低的一笔。。
class Solution
{
public int NumberOf1Between1AndN_Solution(int n)
{
// write code here
int x = 0;
int b;
for(int i = 1;i<=n;i++)
{
b = i;
while(b>0)
{
//有余数是1的情况,就++,然后从最大搞到个位;
if(b%10 == 1)
{
x++;
}
//这里用了整数求除法没有小数点的bug;即int 12/int 10 = 1;13,14....也是如此,
b=b/10;
}
}
return x;
}
}
算了,逻辑性太差了,牛批的想法先不想了。累死人。。。