#include<stdio.h>
#include<string.h>
int my_strlen(char *str)
{
if (*str != '/0')
return 1 + my_strlen(str + 1);//(str+1)是下一个字符的地址
else
return 0;
}
int main()
{
char arr[] = "bit";//['b'], ['i'], ['t'], ['/0']
//模拟实现一个strlen函数
printf("%d\n", my_strlen(arr));//括号内arr传递的是数组首元素的地址
return 0;
}
#include<stdio.h>
int fac(int n)
{
if(n<=1)
return 1;
else
return n*fac(n-1);
}
int main()
{
int n = 0;
int ret = 0;
scanf("%d",&n);
ret = fac(n);
printf("%d",ret);
return 0;
}
//有一些功能:可以使用迭代的方式的实现,也可以使用递归
法一:递归可以求解,但递归的效率太低,重复大量的计算!大约要五分钟
法二:循环或迭代的方法(效率更好)
#include<stdio,h>
int fib(int n)
{
int a = 1;
int b = 1;
int c = 1;
while (n > 2)
{
c = a + b;
a = b;
b = c;
n--;
}
return c;
}
int main()
{
int n = 0;
scanf("%d", &n);
int ret = fib(n);
printf("%d\n", ret);
return 0;
}