实现求字符串长度strlen
递归实现
#include<stdio.h>
#include<string.h>
int m_strlen(char*string)
{
if (*string == '\0')
return 0;
else
return 1+m_strlen(string + 1);
}
int main()
{
int len = m_strlen("abcd");
printf("%d\n", len);
return 0;
}
非递归函数实现
利用循环计数实现
int m_strlen(char*string)
{
int count = 0;
while (*string != '\0')
{
count++;
string++;
}
return count;
}
求n的阶乘
递归实现
#include<stdio.h>
int fac(int n)
{
if (n <= 1)
return 1;
else
return n*fac(n - 1);
}
int main()
{
int c = fac(3);
printf("%d\n", c);
return 0;
}
非递归函数实现其功能
需要记录中间产生的结果
int fac(int n)
{
int sum=1;
if (n <= 1)
return 1;
else
{
for (int i = 1; i <= n; i++)
{
sum = sum*i;
}
}return sum;
}