每次添加后,如何向A添加N位数字使其能被B整除?
给定a、b和n。我们必须考虑以下条件,并找到最佳解决方案,向a添加n位数字,以便在每次迭代后它都能被b整除。
以某种方式向**a**添加一位数字,使得添加后**a**能被**b**整除。
打印经过n次步骤1迭代后**a**的最小可能值。
如果操作失败,则打印**失败**。
检查每次添加数字后的整除性。
输入
a=5 b=4 n=4
输出
52000
解释
从**0**到**9**添加第一位数字,如果没有任何数字使**a**能被**b**整除,则答案为**-1**,这意味着如果在**a**中添加了**n**位数字,**a**永远不会被**b**整除。否则,添加满足条件的第一位数字,然后在其后添加**0** (n-1)次,因为如果**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; }
广告