求 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