1.工具cpulspuls.com 程序员知乎:stack overflow.com23
2.递归——程序调用自身的编程技巧称为递归
史上最简单的递归
int main()
{
printf(“hehen”);
main();
return 0;
}
递归常见的错误:栈溢出——
例子1:
#include
void printf(int n)
{
if(n>9)
{
print(n/10);
}
printf(“%d “,n%10);
}
int main()
{
unsigned int num = 0;
scanf(“%d”,&num);//1234
//递归
print(num);
return 0;
}
例子2,编写函数不允许创建临时变量,求字符串的长度
int my_strlen(char* str)
{
if(*str != ”)
return 1+my_strlen(str+1);
else
return 0;
}
int main()
{
char arr[] = “arr”;
int len = my_strlen(arr);
printf(“%dn”,len);
return 0;
}
例子3:求n的阶乘
方法1—–递归方法
int Fac2(int n)
{
if(n
return 1;
else
return n*Fac2(n-1);
}
int main()
{
//求n的阶乘
int n = 0;
int ret = 0;
scanf(“%d”, &n);
ret = Fac2(n);//循环的方式
printf(“%dn”, ret);
return 0;
}
方法2—-非递归法
int Fac1(int n)
{
int i = 0;
int ret = 1;
for(i=1; i
{
ret *=i;
}
return ret;
}
int main()
{
//求n的阶乘
int n = 0;
int ret = 0;
scanf(“%d”, &n);
ret = Fac1(n);//循环的方式
printf(“%dn”, ret);
服务器托管网
return 0;
}
例子4:求斐波那契数列 1 1 2 3 5 8 13 21 34 55………(前两个数的和等于第三个数)
/*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);
//TDD – 测试驱动开发
printf(“ret = %dn”, ret);
//printf(“count = %dn”, count);
return 0;
}*/
汉诺塔问题
A小移到C,A中移B,C小移动到B,A大移动到C,B小移动到A,B中移动到C,A小移动到C
青蛙跳台阶问题
共服务器托管网n个台阶1次跳一个台阶或两个台阶
这只青蛙要跳到第N个台阶,有多少种跳法
《剑指offer》
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
在现代化办公环境中,数据资源也是非常重要的一种发展要素。有不少朋友会私信我们询问道:如何将企业内部的数据资源利用起来,真正发挥其价值为我所有?在这里,推荐大家了解大数据可视化开源平台,这是可以为企业做好数据管理、实现流程化管理的低代码开发平台。 1、做好数据资…