1、请使用递归实现n!
int factorial(int n) {
if (n == 0) {
return 1;
} else {
return n * factorial(n - 1);
}
}
2、请使用递归实现0-n的和
int sum(int n) {
if (n == 0) {
return 0;
} else {
return n + sum(n - 1);
}
}
3、请使用递归实现斐波那契
int fibonacci(int n) {
if (n <= 1) {
return n;
} else {
return fibonacci(n - 1) + fibonacci(n - 2);
}
}
4、请使用递归实现二进制转换
void binary(int n) {
if (n > 1) {
binary(n / 2);
}
printf("%d", n % 2);
}
5、请递归实现计算各个位数字之和
int digitSum(int n) {
if (n == 0) {
return 0;
} else {
return n % 10 + digitSum(n / 10);
}
}
6、请递归实现计算各个位数字的乘积
int digitProduct(int n) {
if (n == 0) {
return 1;
} else {
return (n % 10) * digitProduct(n / 10);
}
}
7、请使用递归实现计算单词逆置
void reverse(char *str) {
if (*str) {
reverse(str + 1);
printf("%c", *str);
}
}