C++ 中計算可被給定數字整除的 n 位數
假設我們有兩個元素,例如 d 和 num,任務是找到可被 num 整除的 d 位數。
簡單來說,假設我們輸入 d 為 2,那麼我們將首先找到所有兩位數,即 10 到 99,然後找到所有可被 num 整除的數字。
讓我們透過一些例子來進一步理解這一點:
輸入 - 位數 = 2,num= 12
輸出 - 可被給定數字整除的 n 位數的個數:8
解釋 - 可被 12 整除的兩位數是 12、24、36、48、60、72、84 和 96,因此有 8 個兩位數可被 12 整除。
輸入 - 位數 = 2,num= 9
輸出 - 可被給定數字整除的 n 位數的個數 - 10
解釋 - 可被 9 整除的兩位數是 18、27、36、45、54、63、72、81、90 和 99,因此有 10 個兩位數可被 9 整除。
下面程式中使用的方案如下
將元素位數和 num 作為輸入。
將變數 count 初始化為 0,用於計算可被 num 整除的數字個數。
宣告並設定 digi_first 為 pow(10, digit - 1)
宣告並設定 digi_last 為 pow(10, digit)
現在宣告並設定 d_first 為 digi_first % num,d_last 為 digi_last % num
在找到 d_first 和 d_last 後,將 digi_first 設定為 (digi_first - d_first) + num,將 digi_last 設定為 digi_last - d_last
現在將 count 設定為 ((digi_last - digi_first) / num + 1)。
返回並列印 count。
示例
#include <cmath> #include <iostream> using namespace std; int main(){ int digit = 2 , num = 9; //store the count int count= 0 ; int digi_first = pow(10, digit - 1); int digi_last = pow(10, digit); int d_first = digi_first % num; int d_last = digi_last % num; digi_first = (digi_first - d_first) + num; digi_last = digi_last - d_last; count = ((digi_last - digi_first) / num + 1); cout<<"Count of n digit numbers divisible by given number: "<<count<<"\n"; return 0; }
輸出
如果我們執行以上程式碼,我們將得到以下輸出:
Count of n digit numbers divisible by given number: 10
廣告