首页 > 其他分享 >函数递归+线性表

函数递归+线性表

时间:2022-11-12 11:40:31浏览次数:55  
标签:return 线性表 递归 int ret num str 函数

今日学习了函数的递归,递归指的是函数重复引用自身,为了避免栈溢出,应设置合适的限制条件。下面将今天做的练习进行整理:

练习1:接收一个整型值,按照顺序打印他的每一位


#include<stdio.h>
int print(int num)
{
if(num>9)
{
print(n/10);
}
printf("%d",n%10);
}
int main()
{
int num=0;
scanf("%d",&num);
print(num);
return 0;
}

练习2:不允许创建临时变量,编写函数,求字符串长度

//创建临时变量
#include<stdio.h>
int my_strlen(char*str)
{
int count=0;
for(int count=0;str!='\0';str++;;)
count++;
return count;
}
int main()
{
char arr[]="bit";
int len=my_strlen(arr);
printf("%d\n",len)
return 0;
}

//不创建临时变量
int my_strlen(char*str)
{
if(str!='\0')
{
return 1+my_strlen(str+1);
}
else
return 0;
}
int main()
{
char arr[]="bit";
int len=my_strlen(arr);
printf("%d\n",len)
return 0;
}

练习3:求n的阶乘

//循环的方法
#include<stdio.h>
int fac1(int n);
{
int i=0;
int ret=1;
for(i=1;i<=n,i++)
{
ret*=i;
}
return ret;
}
//递归的方法
int fac1(int n);
{
if(n<=1)
return 1;
else
return n*fac1(n-1);
}
int main()
{
int n=0;
int ret=0;
scanf("d%",&n);
ret=fac1(n);
printf("d%",ret);
return 0;
}

以上就是今日所学的递归及所做的练习,下面讲述一下数据结构中相关知识。

1.什么是线性表?

答:线性表是相同特性数据元素的一个有限序列。

2.线性表有什么逻辑特征?

答:在非空的线性表中,有且只有一个开始节点,它没有直接前趋,且仅有以及直接后继;尤其只有一个终端节点,该节点没有直接后继,且有且只有一个直接前趋;内部的节点有有且仅有一个直接前趋和一个直接后继。

3.案例

如果将稀疏多项式全部写出来会造成严重的空间浪费,例如函数递归+线性表_线性表,若将每一项都列出,将会造成空间的浪费。

例如......


标签:return,线性表,递归,int,ret,num,str,函数
From: https://blog.51cto.com/u_15872296/5846557

相关文章

  • 函数对象
    4STL-函数对象4.1函数对象4.1.1函数对象概念概念:重载函数调用操作符()的类,其对象常称为函数对象函数对象使用重载的()时,行为类似函数调用,也叫仿函数本质:函......
  • 算术仿函数
    4.3.2算术仿函数功能描述:实现四则运算其中negate是一元运算,其他都是二元运算仿函数原型:template<classT>Tplus<T>//加法仿函数template<clas......
  • 编写C程序,实现顺序栈的下列功能: 1、设计一个虚拟界面,让用户选择操作(根据提示输入数据
    编写C程序,实现顺序栈的下列功能: 1、设计一个虚拟界面,让用户选择操作(根据提示输入数据)2、采用模块化编程思想,编写main函数和若干子函数(实现功能)3、栈的基本功能有:创......
  • [c/c++] 使用函数指针会导致程序变慢
    参考:​​c-DoesFunctionpointermaketheprogramslow?-StackOverflow​​正文:使用函数指针会导致程序变慢,比如先把某个函数的指针保存下来,然后调用这个指针比直接......
  • 统计开始目录及其子目录下的指定类型文件中的单词(使用多线程、并发多线程(mappedReduce
    #include<QList>#include<QMap>#include<QTextStream>#include<QString>#include<QStringList>#include<QDir>#include<QElapsedTimer>#include<QApplicati......
  • C#之强制类型转换是错误和String到int用Convert()函数解决
    strings="2222"inti=(int)s 这种写法在C#中是错误的,属于强制类型转换,没有通过第三方,直接从A到B的转换,是不受欢迎的。 通过Convert()函数进行第三方转换,属于A到C,再到......
  • 欧拉函数
    欧拉函数定义\(\varphi(n)\)表示小于等于\(n\)的与\(n\)互质的数的个数。性质\(\varphi\)为积性函数,即\(\varphi(a\cdotb)=\varphi(a)\cdot\varphi(b)\)\((a\perp......
  • 关于shell脚本返回值,函数的一个乌龙
    1.背景最近公司有个比较差的游戏项目,简直快突破运维下线,环境条件组合极多,为了快速完成更新脚本,所以采用shell来完成,由于长时间没有写过代码,因为一个概念性问题闹出一......
  • MySQL常用函数
    MySQL数值型函数函数名称作 用ABS求绝对值SQRT求二次方根MOD求余数CEIL和 CEILING两个函数功能相同,都是返回不小于参数的最小整数,即向上取整FLOOR向下取整,返回值转化为......
  • C温故补缺(七):函数指针与回调函数
    函数指针与回调函数函数指针就是指向函数调用栈地址的指针,定义时须和函数的返回值类型,参数类型相同如:#include<stdio.h>intmax(intx,inty){returnx>y?x:y;......