原諒我只會最垃圾的辦法,難受啊,馬飛!!這種方法的思路就是一次次的除10取餘數,餘數是1就+1,效率低的一筆。。spa
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; } }
算了,邏輯性太差了,牛批的想法先不想了。累死人。。。code