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

พิมพ์ตัวเลข K หลักที่มี Digital Root เท่ากับ D ใน C++

ภาพรวมปัญหา

ได้รับ K (จำนวนหลัก) และ D (Digital Root) ต้องพิมพ์ตัวเลข K หลักที่มี Digital Root เท่ากับ D

Digital Root คืออะไร?

ค่าหนึ่งหลักที่ได้จากการบวกเลขหลักของตัวเลขซ้ำๆ จนเหลือหลักเดียว เรียกอีกอย่างว่า Digital Sum

ตัวอย่าง

Input: D = 5, K = 6
Output: 500000

วิธีแก้ปัญหา

ตัวเลขที่ต้องการคือ D ตามด้วยศูนย์ K-1 ตัว เช่น D=5, K=6 → 500000

กรณีพิเศษ: ถ้า D=0 และ K≠1 → ไม่มีคำตอบ (พิมพ์ -1)

ตัวอย่างโค้ด C++

#include <bits/stdc++.h>
using namespace std;

void printKdigitNumber(int k, int d) {
    if (d == 0 && k != 1)
        cout << "-1";
    else {
        cout << d;
        k--;
        while (k--)
            cout << "0";
    }
}

int main() {
    int K = 6, D = 5;
    cout << K << " digit number with digital Root = " << D << " is: ";
    printKdigitNumber(K, D);
    return 0;
}

ผลลัพธ์ (Output)

6 digit number with digital Root = 5 is: 500000