C++ C++;:使用递归实现双位数

C++ C++;:使用递归实现双位数,c++,recursion,C++,Recursion,这是我的“C++入门”课程。我需要 编写一个使用递归函数double_all_digit的程序,该函数将整数中的所有数字加倍。例如,double\u所有数字(101)将返回110011 我下面的代码只适用于一位数字;我不知道如何进行: int double_all_digit(int x) { if(x < 10) return (x*10) + x; } int双精度全数字(int x) { if(x

这是我的“C++入门”课程。我需要

编写一个使用递归函数double_all_digit的程序,该函数将整数中的所有数字加倍。例如,
double\u所有数字(101)
将返回
110011

我下面的代码只适用于一位数字;我不知道如何进行:

int double_all_digit(int x)
{
    if(x < 10)
        return (x*10) + x;
}
int双精度全数字(int x)
{
if(x<10)
返回(x*10)+x;
}

您拥有基本案例;现在是递归

  • 将数字拆分为1的数字(使用模数)和其他数字
  • 休息时复发;您的结果是所有数字都加倍的数字
  • 将结果乘以100;将1的数字加11倍
  • 将此值向上返回一级
    • 这里有一个策略:

      • 将数字转换为字符串。(使用std::to_字符串)
      • 迭代字符串中的字符,并为原始字符串中的每个字符在新字符串中追加2个字符。(请参见std::string::append)
      • 将结果字符串转换为整数

      因为这是家庭作业,所以您必须执行编码位。:)

      如何通过递归函数实现这一点当您获得解决方案时,请记住向上投票选择有用的内容并接受您最喜欢的答案(即使您必须自己编写),这样堆栈溢出可以正确地存档问题。