向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; }