題目:
給定乙個數n,求出1-n之間的數字有多少個1,例如n=11時結果為4(只有1,10,11含1)
經典問題。
參照程式設計之美分析
程式設計之美上的一道題目,原文分析的方法十分簡單,並且很容易程式實現。分析:
若x = abcde,我們來看百位為1出現的次數,這裡分3種情況討論:
1. 百位為0時,假設x = 45021,可以算出百位為1出現情況:
100~199
1100~1199
...44100~44199
總共是45*100個1
2. 百位為1時,假設x = 45121,可以算出百位為1出現情況:
100~199
1100~1199
...44100~44199
45100~45145
總共是45*100+(45+1)個1
3. 百位大於1時,假設x = 45821,可以算出百位為1出現情況:
100~199
1100~1199
...44100~44199
45100~45199
總共是(45+1)*100個1
於是,我們可以找到這樣乙個規律,對於某一特定的位,該位出現1的次數為:
1. 若該位的值為0,則該位出現1的次數=高位值*該位的進製
2. 若該位的值為1,則該位出現1的次數=高位值*該位的進製+低位值+1
3. 若該位的值大於1,則該位出現1的次數=(高位值+1)*該位的進製
計算1至n中數字X出現的次數
以 n 2593,x 5 為例來解釋如何得到數學公式。從 1 至 2593 中,數字 5 總計出現了 813 次,其中有 259 次出現在個位,260 次出現在十位,294 次出現在百位,0 次出現在千位。現在依次分析這些資料,首先是個位。從 1 至 2590 中,包含了 259 個 10,因此任意...
計算1至n中數字X出現的次數 math
nailperry 一 1的數目 程式設計之美上給出的規律 1.如果第i位 自右至左,從1開始標號 上的數字為0,則第i位可能出現1的次數由更高位決定 若沒有高位,視高位為0 等於更高位數字x當前位數的權重10i 1。2.如果第i位上的數字為1,則第i位上可能出現1的次數不僅受更高位影響,還受低位影...
統計1 N中數字x出現的次數
統計1 n中數字2出現的次數 例 n abcdefg 例 請統計某個給定範圍 l,r 的所有整數中,數字2出現的次數。比如給定範圍 2,22 數字2在數2 現了1次,在數12 現1次,在數20 現1次,在數21 現1次,在數22 現2次,所以數字2在該範圍內一共出現了6次。include using...