1.编写一个函数实现n^k,使用递归实现
#include<stdio.h>
int Result(int x, int y)
{
if (y == 0)
{
return 1;
}
else
{
return x*Result(x, y - 1);
}
}
int main()
{
int a = 2;
int b = 5;
int c = 0;
c=Result(a,b);
printf("%d\n", c);
return 0;
}
- 写一个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和,
#include<stdio.h>
int DigitSum(int n)
{
if (n <= 9)
{
return n;
}
else
{
return n % 10 + DigitSum(n / 10);
}
}
int main()
{
DigitSum(327);
printf("%d\n", DigitSum(327));
return 0;
}
- 编写一个函数 reverse_string(char * string)(递归实现)
实现:将参数字符串中的字符反向排列。
要求:不能使用C函数库中的字符串操作函数。
#include<stdio.h>
int MyStrlen(char *str)
{
if (*str == '\0')
{
return 0;
}
return 1 + MyStrlen(str + 1);
}
void Reverse_Strlen(char *str)
{
char tmp = 0;
int len = MyStrlen(str);
tmp=*str;
*str = *(str + len - 1);
*(str + len - 1) = '\0';
if (MyStrlen(str + 1) >= 2)
{
Reverse_Strlen(str + 1);
}
*(str + len - 1) = tmp;
}
int main()
{
char str[] = "abcdefg";
Reverse_Strlen(str);
printf("%s\n ",str);
return 0;
}