Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

เพิ่ม N หลักให้กับ A ให้หารด้วย B ลงตัวหลังการเพิ่มทุกครั้ง


กำหนด 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;
}