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
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP