以 C++ 打印包含 K 位数字且数字根为 D 的数字


本文中,我们给出两个数字 K 和 D。我们的任务是打印一个 k 位数字且数字根等于 D 的数字。

数字根是一个单位数,它是数字的各个数字递归相加的结果,直到得到一个单位数。也称为数字和。

举个例子来理解这个问题,

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

为了解决这个问题,我们在数字 D 后面试用零。我们的数字将是{D000..(k-1 次)}。这是一个简单优雅的解决方法,并且不太复杂。

示例

显示我们解决方法实现的程序,

 现场演示

#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

更新于:2020-01-27

88 次浏览

开启你的职业生涯

完成课程获得认证

开始
广告