倒序正十进制整数的递归函数位 c

新手上路,请多包涵

我有一个任务要编写一个递归函数,该函数以相反的顺序写入正整数的数字。我的问题是该功能无法正确显示相反的内容。我知道在递归调用中显示数字和 / 时我应该使用 % 或 10 以及基本情况应该是 < 10。这是我的代码。

 #include <iostream>
using namespace std;

int reverse(int,int);

int main()
{
    int number;
    int n;

    cout << " Enter number to reverse." << endl;
    cin >> number;
    cout << reverse(number % 10,0);

    return 0;
}//end main

int reverse(int number,int n)
{

    if(n < 10)
    {
        return n;
    }
    else
    {
        return reverse(number/10,n);
    }
}// end reverse

原文由 Kayla Bianchi 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 401
1 个回答

我认为这就是你的功能应该是:

 void reverse(int number){
    if(number == 0) //base/basic case i.e if number is zero the problem is already solved, nothing to do, so simply return
        return;
    else{
        cout << number % 10; // print that last digit, e.g 103%10 == 3
        reverse(number/10); //solve the same problem but with smaller number, i.e make the problem smaller by dividing it by 10,  initially we had 103, now 10
    }
}

原文由 Rami Jarrar 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题