数组
1.例:bit
设str是bit中b的地址,*str就是b,(str+1)就是i的地址。
2.问题:通过递归求阶乘
思路Fac(n)=1,n<=1
Fac(n)=n*Fac(n-1),n>1
#include <stdio.h>
int Fac(int n)
{
if (n <= 1)
return 1;
else
return n * Fac(n - 1);
}
int main()
{
int n;
int ret;
scanf("%d", &n);
ret=Fac(n);
printf("%d\n", ret);
return 0;
}
3.①递归求斐波那契数列
斐波那契 1 1 2 3 5 8 13 第n个数=第n-1个数和第n-2个数之和
思路Fib(n)=1,n<=2
Fib(n)=Fib(n-1)+Fib(n-2),n>2
#include <stdio.h>
int Fib(int n)
{
if (n <= 2)
return 1;
else
return Fib(n - 1) + Fib(n - 2);
}
int main()
{
int n;
int ret;
scanf("%d", &n);
ret = Fib(n);
printf("ret=%d\n", 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;
int ret = 0;
scanf("%d", &n);
ret = Fib(n);
printf("ret=%d\n", ret);
return 0;
}