//題目:從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語言的初...