不含49的數

2021-08-28 10:46:00 字數 664 閱讀 6315

求a~b中不包含49的數的個數. 0 < a、b < 2*10^9

思路:數字dp, dp[i][1]表示第i+1位為4時第i位能構成的合法數字數量。dp[i][0]表示第i+1位不為4時第i位能構成的合法數字數量。

#include #include #include #include using namespace std;

int a, b;

int num[20], dp[20][2];

int dfs(int pos, bool state, bool limit)

if (!limit && dp[pos][state] > 0)

int result = 0;

int up = limit? num[pos] : 9;

for (int i = 0; i <= up; i++)

result += dfs(pos - 1, i == 4, limit && i == up);

} if (!limit)

return result;

}int solve(int x)

return dfs(pos - 1, false, true);

}int main(int argc, const char * argv)

面試題49 醜數

題意 把只包含質因子2 3和5的數稱作醜數 ugly number 例如6 8都是醜數,但14不是,因為它包含質因子7。習慣上我們把1當做是第乙個醜數。求按從小到大的順序的第n個醜數。思路 暴力每個數,判斷是不是醜數,直到找到第n個醜數。這個有點慢,不考慮 不能暴力所有數,我們考慮暴力醜數。假設陣列...

面試題49 醜數

一 暴力法 從1開始對每乙個數進行判斷,是否可以連除2,3,5得到1,效率比較低 class solution return number bool isugly int n 二 以空間換取時間的做法 思路 把每乙個醜數都列出來。醜數肯定是2,3,5的倍數,所以每乙個位置都可以乘2,3,5,找到比目...

面試題49 醜數

把只包含質因子2 3和5的數稱作醜數 ugly number 例如6 8都是醜數,但14不是,因為它包含質因子7。習慣上我們把1當做是第乙個醜數。求按從小到大的順序的第n個醜數。考察點 時間複雜度的理解 需求了解。思路 這道題最簡單的想法是寫乙個判斷是不是醜數的函式,然後從小到大以此遍歷,直到找到第...