递归:在运行过程中调用自己
1.递归实现n^k:
源码函数:
//递归求n^k
int GetPower(int n, int k){
while ( k > 0){
if (k == 0){
return 1;
}
else if (k == 1){
return n;
}
else
return n*GetPower(n, k - 1);
}
}
2.打印一个整数的每一位
void Dprint(int n){
printf("%d",n%10);
n = n / 10;
if (n != 0){
Dprint(n);
}
}
3.递归求一个数的各位之和
int Digitsum(int n){
if (n <9){
return n;
}
else
return n%10+Digitsum(n / 10);
}
3.将参数字符串中的字符反向排列(不使用C函数库中的字符串操作函数)
void reverse_string(char *str){
if (*str == '\0'){
return;
}
reverse_string(str + 1);
printf("%c", *str);
}
4.求n的阶乘
//递归实现n的阶乘
int Factor1(int n){
if (n < 0){
return 0;
}
if (n == 1 || n == 0){
return 1;
}
return n*Factor1(n - 1);
}
//非递归实现n的阶乘
int Factor2(int n){
if (n < 0){
return 0;
}
int sum=1 ;
for (int i = 1; i <=n; i++){
sum = sum*i;
}
return sum;
}