双指针6行代码,对于每一个数求1的个数,然后加起来。对于每一个数来说求个位只需要mod10就好,然后将原数/10 替换 原数,再mod10求得十位,以此类推,可得各十百千。。。位。 然后循环--即可
public int NumberOf1Between1AndN_Solution(int n) { int count=0; for(int i=n;i>0;i--){ for(int j=i;j>0;j/=10){ if(j%10==1) count++; } }return count;
双指针6行代码,对于每一个数求1的个数,然后加起来。对于每一个数来说求个位只需要mod10就好,然后将原数/10 替换 原数,再mod10求得十位,以此类推,可得各十百千。。。位。 然后循环--即可
public int NumberOf1Between1AndN_Solution(int n) { int count=0; for(int i=n;i>0;i--){ for(int j=i;j>0;j/=10){ if(j%10==1) count++; } }return count;