嗨,我正在学习递归,我需要帮助来了解递归的工作原理 我了解如何使用它,但并非全部
例如,我有2个函数来帮助阐明我的问题
return 1 + NumLetters(num / 10);
第一个函数是从主体获取一个数字并返回其中的数字的函数, 我不明白的是最终它如何最终返回数字位数,但它也实现了递归
return num % 10 + Sumletters(num / 10);
还有第二个示例,该示例的代码最终返回字母的总和,但我仍然不明白它的工作原理。
#include <stdio.h>
int NumLetters(int num)
{
if (num < 10)
{
return 1;
}
return 1 + NumLetters(num / 10);
}
int Sumletters(int num)
{
if (num < 10)
{
return 1;
}
else return num % 10 + Sumletters(num / 10);
}
int main()
{
int num;
scanf("%d", &num);
printf("%d\n", NumLetters(num));
printf("%d\n", Sumletters(num));
}