Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/133.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 将数字反转的递归_C++_Recursion - Fatal编程技术网

C++ 将数字反转的递归

C++ 将数字反转的递归,c++,recursion,C++,Recursion,递归如何在这个问题上工作我没有得到请帮助,因为它返回revu num,所以我很困惑 #include <stdio.h>; /* Recursive function to reverse digits of num*/ int reversDigits(int num) { static int rev_num = 0; static int base_pos = 1; if(num > 0) {

递归如何在这个问题上工作我没有得到请帮助,因为它返回revu num,所以我很困惑

 #include <stdio.h>;

    /* Recursive function to reverse digits of num*/
    int reversDigits(int num)
    {
      static int rev_num = 0;
      static int base_pos = 1;
      if(num > 0)
      {
        reversDigits(num/10);
        rev_num  += (num%10)*base_pos;
        base_pos *= 10;
      }
      return rev_num;
    }

    /*Driver program to test reversDigits*/
    int main()
    {
        int num = 4562;
        printf("Reverse of no. is %d", reversDigits(num));

        getchar();
        return 0;
    }
#包括;
/*用于反转num的数字的递归函数*/
整数位数(整数位数)
{
静态int rev_num=0;
静态int base_pos=1;
如果(数值>0)
{
数字(个/10);
修订数量+=(数量%10)*基本位置;
基准位置*=10;
}
返回rev_num;
}
/*测试反向数字的驱动程序*/
int main()
{
int num=4562;
printf(“编号的反面为%d”,反面为数字(num));
getchar();
返回0;
}

必须返回函数名,如:

return reversDigits(num);

您缺少一些信息:实际和预期的输出是什么?使用调试器将大大帮助您。使用调试器,您可以逐行地逐步完成代码,并逐步进入递归调用,同时能够看到所有涉及变量的值以及它们的变化方式。了解并能够使用调试器是程序员的一项关键技能。调试器有效吗?你会问为什么吗?@ThomasChristensen检查这一点,看看递归方式
静态
变量是理解其有效性的关键。因此,我应该在上述代码中做的唯一更改是返回反向数字(num);是的,但我认为最好使用IF语句code@scbasOP的代码可以工作,并且是递归的(函数在if语句中调用自身)。它使用静态变量来记住递归上下文之间的部分结果。