求最小的一个十进制数,所有位上数字之和为n,且能被m整除的数。
枚举m的整数倍。
代码:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<queue>
#include<vector>
#include<set>
using namespace std;
int n, m;
bool judge(int k) {
int sum = 0;
while (k > 0) {
sum += k % 10;
k /= 10;
}
if (sum == n)
return true;
return false;
}
int main()
{
cin >> n >> m;
for (int i = m;; i += m) {
if (judge(i)) {
cout << i;
break;
}
}
return 0;
}