当前位置:网站首页>【函数与递归】7.19
【函数与递归】7.19
2022-08-03 05:11:00 【tt142】
从今天开始就以所学内容进行命名,再也不担心记不住数字哈哈
今天还是学了一些函数的内容,很少一点的收尾,主要接触到一种新的语句,递归
初识还是很有难度的对我来说,一点都不简单,学了五个小时也算是才刚刚入门
现在的知识真的是连C语言的门槛都还没看见。。
#include<stdio.h>
//史上最简单的递归
int main()
{
printf("hehe");
main()
return 0;
} //可能存在stack overflow的问题
//接受一个无符号整型,并且按顺序打印,例如1234->1 2 3 4
void print(int x)
{
if(x>9)
print(x/10);
printf("%d ",x%10);
}
int main()
{
unsigned int a =0;
scanf("%d",&a);
print(a);
return 0;
}
//编写函数,不允许创建临时变量,求字符串长度
int my_strlen(char* x)
{
if(*x != '\0')
return 1+my_strlen(x+1);
else
return 0;
}
int main()
{
char arr[]="dada";
int ret=my_strlen(arr);
printf("%d",ret);
return 0;
}
//描述第n个斐波那锲数:
/首先用递归的方法写,并且表明循环工作量
int count;
int Fib(int x)
{
if(x == 2)
count++;
if(x>2)
return Fib(x-2)*Fib(x-1);
else
return 1;
}
int main()
{
int n=0;
scanf("%d",&n);
int ret= Fib(n);
printf("%d",ret);
printf("%d",count);
return 0;
}
//发现效率低下,改成函数方式
int count;
int Fib(int x)
{
int a, b=0;
int c=1;
for(a=1,b=1,c=1;x>2;count++,x--)
{
c=a + b ;
a=b;
b=c;
}
return c;
}
int main()
{
int n =0;
scanf("%d",&n);
int ret =Fib(n);
printf("ret=%d\n",ret);
printf("count=%d",count);
return 0;
}
//求n阶乘
int Fac(int x)
{
if(x>1)
return x*Fac(x-1);
else
return 1;
}
int main()
{
int n=0;
scanf("%d",&n);
int ret = Fac(n);
printf("%d",ret);
return 0;
}
边栏推荐
猜你喜欢
第三次HarmonyOS培训
Modelarts第一次培训
Install IIS services (Internet Information Services (Internet Information Services, abbreviated IIS, Internet Information Services)
Exception (abnormal) and Error (error) difference analysis
Djiango第四次培训笔记
力扣561. 数组拆分
junit总结
【转】最小描述长度准则MDL(Minimun Description Length)
Exception(异常) 和 Error(错误)区别解析
2. 两数相加
随机推荐
内部类、static关键字、final
接口和抽象
VR全景展打造专属元宇宙观展空间
User password verification
1054 求平均值 (20 分)
Pr第二次培训笔记
详解Nurbs曲线
飞机大战完整版
ss-4.1-1个eurekaServer+1个providerPayment+1个consumerOrder
Alienware上线首个数字时装AR试穿体验
对角矩阵(diagonal matrix)
1059 C语言竞赛 (20 分)(C语言)
斐讯K2路由编译Padavan华硕固件和心得
在树莓派上搭建属于自己的网页(1)
Get the Ip tool class
HarmonyOS应用开发第一次培训
-一尺之棰-
ss-5.consul服务端+生产者+消费者
1230: 蜂巢
-查找数-