向A添加N个数字,以便每次添加后都能被B整除?
给定a,b和n。而且,我们必须请看以下条件,并找到将n位数字添加到a的最佳解决方案,以便在每次迭代后n被n整除。
一个数字添加到一个 在这样一个 方式,添加之后,一个 是整除b。
在第n步的步骤1迭代之后,输出一个 可能的最小值。
打印失败 如果操作失败。
每增加一位数字后检查除数。
输入值
a=5 b=4 n=4
输出结果
52000
说明
第一位数字要被添加从0到9,如果没有的数字使一个整除b那么答案是-1,这意味着如果Ñ数字被在加入一个。a永远不能除以b。否则添加满足条件的第一个数字,然后在(n-1)次之后添加0,因为如果a被b整除,那么a*10,a*100,…也将被b整除。
示例
#include <iostream>
using namespace std;
int main() {
int a = 5, b = 4, n = 4;
int num = a;
for (int i = 0; i <= 9; i++) {
int temp = a * 10 + i;
if (temp % b == 0) {
a = temp;
break;
}
}
if (num == a) {
a = -1;
}
for (int j = 0; j < n - 1; j++) {
a *= 10;
}
if(a>-1) {
cout <<a;
} else {
cout <<”fail”;
}
return 0;
}