Given an integer n, count the total number of digit 1 appearing in all non-negative integers less than or equal to n.
For example:
Given n = 13,
Return 6, because digit 1 occurred in the following numbers: 1, 10, 11, 12, 13.
代码如下:
public class Solution { public int countDigitOne(int n) { if(n<=0) return 0; int j=1,k=n,constant=0; while(k>=10){ k/=10; j*=10; } if(k>1){ constant=j; }else{ constant=n%j+1; } return constant+k*countDigitOne(j-1)+countDigitOne(n%j); } }
运行结果:
时间: 2024-10-22 16:10:20