กำหนด a, b และ n เราต้องพิจารณาเงื่อนไขต่อไปนี้และหาวิธีแก้ที่เหมาะสมที่สุดในการเพิ่ม n หลักให้กับ a 使得หลังจากการเพิ่มทุกครั้ง a จะหารด้วย b ลงตัว
เพิ่มหลักหนึ่งให้กับ a อย่างที่หลังจากเพิ่มแล้ว a หารด้วย b ลงตัว
พิมพ์ค่า a ที่เล็กที่สุดที่เป็นไปได้หลังจาก n รอบของขั้นตอนที่ 1
พิมพ์ fail หากการดำเนินการล้มเหลว
ตรวจสอบการหารลงตัวหลังจากการเพิ่มหลักทุกครั้ง
อินพุต
a=5 b=4 n=4
เอาต์พุต
52000
คำอธิบาย
หลักแรกที่จะเพิ่มจาก 0 ถึง 9 หากไม่มีหลักใดทำให้ a หารด้วย b ลงตัว คำตอบคือ -1 หมายความว่า ถ้าเพิ่ม n หลักใน a แล้ว 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;
}