在C ++中以数字根D打印包含K位的数字

在这个问题中,我们给了两个数字K和D。我们的任务是打印出k个数字,并且其数字根等于D。

数字根是一位数字值,它是数字的数字递归加法直到达到一位数字的结果。也称为数字总和。

让我们举个例子来了解这个问题,

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

为了解决这个问题,我们将在数字D之后使用零的试验。我们的数字将为{D000 ..(k-1 times)}。这是对我们的问题的简单而优雅的解决方案,它也不太复杂。

示例

展示我们解决方案实施情况的程序,

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

输出结果

6 digit number with digital Root = 5 is : 500000