递归求数阶
#include <stdio.h>
int add (int x);
int main() {
int number;
printf("请输入需要求数阶的值:");
scanf("%d", &number);
int all = add (number);
int i;
printf("%d",number);
for (i = 1; i < number; i++) {
printf("*%d",number - i);
}
printf(" = %d\n",all);
}
int add (int x){
int ans;
if (x == 1) {
ans = 1;
}else{
ans = x * add(x-1);
}
return ans;
//在Xcode中加断点之后,会发现return会重复进行好多次,原因每次调用函数都需要return返回,第一次ruturn ans是最后一次调用函数时的返回值,返回到倒数第二次调用的函数中(如果值不被接收,那么返回值对倒数第二次调用的函数中的数值没有任何影响),然后继续运行倒数第二次调用的函数,然后运行到return,以此类推,下断点之后会发现递归函数中return这一步运行了多次。
}