CI20 4 計算0 n之間某個數出現的次數

2021-06-16 22:57:21 字數 617 閱讀 8109

實現乙個方法,計算0~n之間2的出現次數。

思路:有個類似題在程式設計之美和劍指offer上都出現過,是求1的個數。以12306這個數為例,首先我們看千位,千位上2的出現次數有:2000~2999、12000~12306,一共是1 * 1000 + 307;百位上2的出現次數有:200~299、1200~1299、2200~2299、...、12200~12299,一共是13 * 100;十位上2的出現次數有:20~29、120~129、...、12220~12229,一共是123 * 10。

總結規律如下:

1、當前位的數字等於2時,該位2出現的次數為:高位數字 * 當前位數 + 低位數字 + 1;

2、當前位的數字大於2時,該位2出現的次數為:(高位數字 + 1)* 當前位數;

3、當前位的數字小於2時,該位2出現的次數為:高位數字 * 當前位數。

#include #include using namespace std;

int numoftwo(int n)

return res;

}int main()

這個思路可以擴充套件到其他的值(0 ~ 9),當求0的次數時,要考慮最高位不能為0的特殊情況。

lc204計算質數

統計所有小於非負整數 n 的質數的數量。示例 1 輸入 n 10 輸出 4 解釋 小於 10 的質數一共有 4 個,它們是 2,3,5,7 示例 2 輸入 n 0 輸出 0 示例 3 輸入 n 1 輸出 0 0 n 5 106 這裡用的是埃式篩法 本題需要注意 資料範圍 510 6,在ii的時候,會...

CI19 3 n的階乘末尾0的個數

實現乙個演算法,計算n的階乘末尾有多少個0。思路 如果先計算n 然後再計算末尾0的個數,這種方法不可取,因為n 隨時可能溢位。階乘末尾有0,肯定是2和5相乘而得。所以我們只需要計算因子2和因子5的對數。可以發現因子2的出現次數要大於因子5的出現次數,所以只計算因子5的個數即可。5 包含1 5,1個5...

MATLAB數值計算 0

目錄format 表示格式 help format 可以查詢format幫助 format short 把輸出的格式改為預設設定 format rat 顯示為分數 format long e 顯示長精確度並用科學計數法 format long 並沒有重計算,把顯示數字的有效位5 15位 format...