0
我正在学习C语言考试,今天我在努力实现我用递归告诉的东西,尽管我用迭代函数实现了它,然后我发现我可以很容易地它是递归的。例如:(函数的目的是由右至左的字符betweem 0-9发现,从炭变换他们int和在该顺序进行打印)在递归实现之前做迭代函数
实施例:
char chArray[] = { '2','4','e','b','c','@','0' };
printf("%d", buildNumber_rec(chArray, 7));
迭代:
int buildNumber(char chArray[], int n){
int i,num=0;
for(i=0;i<n;i++)
if(chArray[i]>='0' && chArray[i]<='9')
num=10*num + (chArray[i]-'0');
return num;
}
递归:
int buildNumber_rec (char chArray[], int n){
char last=chArray[n-1];
if(!n) return 0;
if(last>='0' && last<='9')
return (last-'0')+10*buildNumber_rec(chArray,n-1);
return buildNumber_rec(chArray,n-1);
}
输出:
240
我知道这听起来太一般了,但有可能得到的是如何通过先用迭代函数实施这些解决递归练习的想法?换句话说,通过迭代地发现如何递归求解的模式(如果是诅咒,这是我唯一的选择 - 意思是说,我不知道如何递归求解)。
想到递归,就像使用堆栈数据结构迭代操作一样。 –
“如何通过首次使用迭代函数来实现递归练习来解决递归练习” - 不太清楚这意味着什么,想要详细阐述? – Ian
@Ian我首先写了第一个函数,然后突然看到递归函数遵循相同的逻辑。 –