例如輸入12,從1到12這些整數中包含1 的數字有1,10,11和12,1一共出現了5次。java
java實現:ide
// 求n個數中一共含有多少個1code
public class Order_Shed { //思路一 public static int countNum(int[]array,char target){ int count=0; if(array==null||array.length==0) return count; String source=""; for(int i=0;i<array.length;i++){ source+=array[i]; } int length = source.length(); for(int i=0;i<length;i++){ if(source.charAt(i)==target) count++; } return count; } //思路二 public static int countNumOfOne(int n){ int count = 0; int dividend_1 = 1; int dividend_2 = 10; int temp =0; while(dividend_1<=n){ temp=(n%dividend_2)/dividend_1; if(temp>1) count+=(n/dividend_2+1)*dividend_1; else if(temp==1) count+=(n/dividend_2)*dividend_1+n%dividend_1+1; else count+=(n/dividend_2)*dividend_1; dividend_1*=10; dividend_2=dividend_1*10; } return count; } public static void main(String[] args) { int[] array={1,2,3,4,5,6,7,8,9,10,11,12}; System.out.println(countNum(array, '1')); System.out.println(countNumOfOne(12)); } }
結果:get
5class
5static