C ++:使用递归加倍数字

时间:2017-04-29 00:41:42

标签: c++ recursion

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

  

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

我的代码仅适用于一位数字;我不知道如何继续:

int double_all_digit(int x)
{
    if(x < 10)
        return (x*10) + x;
}

2 个答案:

答案 0 :(得分:1)

你有基本情况;现在为递归。

  • 将数字分成1位数(使用模数)和其余数字。
  • 重复其余部分;你的结果是所有数字加倍的数字。
  • 将该结果乘以100;将1位数加11倍。
  • 将此值提高一级。

答案 1 :(得分:0)

这是一个策略:

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

既然是家庭作业,你就必须做编码。 :)