劍指offer 32 1到n整數中2出現的次數

2021-07-31 14:58:29 字數 873 閱讀 5807

//題目:從1到n個整數中輸出2出現的次數

//解法1:同一每個數字中包含2的次數並相加

public class main

public static int get2count(int n)

return result; }

public static int getnum(int num)

num = num/10;

} return result; }

}//解法2:按照數字位數出現的次數進行計算

public class main

public static int get2count(int n)

public static int getnum(string str)

int length = str.length();

int first = str.charat(0)-'0';

if(length == 1 && first>1)

if(length == 1 && first<=1)

int numfirst = 0; //第一位可能出現2的次數和兩種可能

if(first>2)else if(first == 2)

int numsecond = first*(length-1)*(int)math.pow(10,length-2); //剩餘位在第一位不變的情況下可能出現2的次數,其實就是全排列

int numiter = getnum(str.substring(1)); //將第一位刪除,迭代執行程式

return numfirst+numsecond+numiter; }

}

劍指offer32 1 不分行從上往下列印二叉樹

從上往下列印出二叉樹的每個結點,同一層的結點按照從左到右的順序列印。樣例 輸入如下圖所示二叉樹 8,12,2,null,null,6,null,4,null,null,null 8 12 2 6 4輸出 8,12,2,6,4 思路 用乙個佇列存放樹節點,層次遍歷訪問所有結點,並且儲存其數值。acwi...

劍指offer(31)1到n中n出現的次數

題目描述 求出1 13的整數中1出現的次數,並算出100 1300的整數中1出現的次數?為此他特別數了一下1 13中包含1的數字有1 10 11 12 13因此共出現6次,但是對於後面問題他就沒轍了。acmer希望你們幫幫他,並把問題更加普遍化,可以很快的求出任意非負整數區間中1出現的次數 從1 到...

劍指offer 列印1到最大n位數

面試題12 題目 輸入數字n,按照順序答應出從1最大的n位十進位制數。比如輸入3,則列印出1 2 3一直到最大的三位數即999。對於這道題進行時,咱們會進行一些分析,當你輸入3時,最大的三位數是999,這就是說這個最大的數是9 10 n 1 9 10 n 2 9 10 0。所以在這我想學習c語言的初...