求 K 位數字中能被 X 整除的最小數字?
在本文中,我們將嘗試找到能被 X 整除的 K 位數字中最小的。為了完成這項任務,我們將使用此公式 (10^(k-1)) 來得到最小的 K 位數字。然後檢查此數字是否能被 X 整除,如果不能,我們將使用此公式得到準確的數字。
(min+ 𝑋)−((min+ 𝑋) 𝑚𝑜𝑑 𝑋)
有一個示例,比如要找一個 5 位數字,能被 29 整除。所以最小的 5 位數字是 10000。此數字不能被 29 整除。現在我們使用這個公式,我們得到 -
(10000+ 29)−((10000+29) 𝑚𝑜𝑑 29)=10029−24=10005
數字 10005 能被 29 整除。
演算法
minKDigit(k, x)
begin min = 10 ^ (k-1) if min is divisible by x, return min otherwise return (min + x) – ((min + x) mod x) end
示例
#include<iostream>
#include<cmath>
using namespace std;
long min_k_digit(int k, int x) {
//get the minimum number of k digits
int min = pow(10, k-1);
if(min % x == 0) {
return min;
}
return (min + x) - ((min + x) % x);
}
main() {
int k, x;
cout << "Enter Digit Count(K) and Divisor(N): ";
cin >> k >> x;
cout << "Result is: " << min_k_digit(k, x);
}輸出
Enter Digit Count(K) and Divisor(N): 5 29 Result is: 10005
輸出
Enter Digit Count(K) and Divisor(N): 6 87 Result is: 100050
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
And
Python
C 語言
C++
C#
MongoDB
MySQL
Javascript
PHP