C++ 将数字反转的递归
递归如何在这个问题上工作我没有得到请帮助,因为它返回revu num,所以我很困惑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) {
#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语句中调用自身)。它使用静态变量来记住递归上下文之间的部分结果。