函数自己调用自己的形式称为函数的递归调用。
代码一:n的阶乘:

#include<stdio.h>
long fact(int n){long f;if(n==1)f=1;  //递归出口elsef=n*fact(n-1); //递归调用式子//n*(n-1)*(n-1-1)*(n-1-1-1)......return(f);
}
int main()
{long y;int m;printf("请输入一个整数:");  //n=2scanf("%d",&m);y=fact(m);printf("%d!=%ld\n",m,y);return 0; }

代码二:
递归求简单交错幂级数的部分和

#include <stdio.h>double fn( double x, int n );int main()
{double x;int n;scanf("%lf %d", &x, &n);printf("%.2f\n", fn(x,n));return 0;
}double fn(double x,int n)
{ double result;if (n==1||n==0)result=x;  //递归出口elseresult=x-x*fn(x,n-1); //递归调用式子return result;
}

从上面两个式子,我们可以看出:平常我们定义了一个函数,只会调用一次,而对递归而言,函数会被不停的调用。
这就是递归的特点,对我而言,我不太喜欢递归,因为设计一个递归需要很强的数学能力,鄙人不才,所以不用。
言归正传,递归的关键是:递归式子和递归出口。
以代码一为例:首先我们要发现题目的规律,阶乘的特点,我们都要从n乘到1且每次减1,所以我们设计递归式子时,让它每次乘法运算时都要(n-1),**这就牵扯到递归的特点,我们可以把调用函数的的函数(也就是上一个函数)看作主函数,调用变量只和他有关。**那么代码一我想大家就明白什么意思了。
代码二为例:
我们在设计代码出口时,需要大费脑筋,我们可以把递归想象为若干个函数的压缩,**当函数结束递归时,最后一次调用的产生的结果要返回上一次调用,然后最后一次调用被清除,然后依次进行,直到回到主函数,**所以我们要处理好递归出口的处理,这也就是我不喜欢的递归原因,原理很简单,设计很麻烦。

C语言递归(pta递归求简单交错幂级数的部分和)相关推荐

  1. 习题2.6 递归求简单交错幂级数的部分和 (15 分)

    习题2.6 递归求简单交错幂级数的部分和 (15 分) 本题要求实现一个函数,计算下列简单交错幂级数的部分和: f(x,n)=x−x​2​​+x​3​​−x​4​​+⋯+(−1)​n−1​​x​n​​ ...

  2. 习题10-4 递归求简单交错幂级数的部分和 (15 分)

    本题要求实现一个函数,计算下列简单交错幂级数的部分和: f(x,n)=x−x2+x3−x4+⋯+(−1)n−1xn 函数接口定义: double fn( double x, int n ); 其中题目 ...

  3. 《程序设计基础》 第十章 函数与程序结构 6-5 递归求简单交错幂级数的部分和 (15 分)

    本题要求实现一个函数,计算下列简单交错幂级数的部分和: f(x,n)=x−x2+x3−x4+⋯+(−1)n−1xn 函数接口定义: double fn( double x, int n ); 其中题目 ...

  4. 浙大数据结构习题2.6递归求简单交错幂级数和

    本题要求实现一个函数,计算下列简单交错幂级数的部分和: f(x,n)=x−x2+x3−x4+⋯+(−1)n−1xn 函数接口定义: double fn( double x, int n ); 其中题目 ...

  5. 一个简易的c语言病毒源码,求简单病毒代码

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include void main(void) { virus(); } int virus() { struct ffblk ffb ...

  6. C语言入门——递归(思想简要讲解+简单递归练习)

    C语言入门--递归(简要讲解+递归练习) 递归定义: 程序调用自身的编程技巧称为递归( recursion). 递归从字面上我们可以理解为: 递去+归来 如下图 使用递归的目的: 简要:简化代码量,方 ...

  7. 编写程序C语言 用递归法求n,用C语言编写一个递归程序用来计算:1*2+2*3+3*4+.+(n-1)*n...

    用C语言编写一个递归程序用来计算:1*2+2*3+3*4+.+(n-1)*n以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧 ...

  8. 用递归调用法求斐波那契函数_进阶版:面试官问你斐波那契数列的时候不要高兴得太早...

    增加内容 递归改进版 矩阵快速幂解法 通项表达式解法 列表法 斐波那契数列应用 前言 假如面试官让你编写求斐波那契数列的代码时,是不是心中暗喜?不就是递归么,早就会了.如果真这么想,那就危险了. 递归 ...

  9. C语言函数递归调用实验报告,C语言函数的递归和调用实例分析

    一.基本内容: C语言中的函数可以递归调用,即:可以直接(简单递归)或间接(间接递归)地自己调自己. 要点: 1.C语言函数可以递归调用. 2.可以通过直接或间接两种方式调用.目前只讨论直接递归调用. ...

最新文章

  1. WebDriver 登陆 Jsoup抓取内容
  2. linux系统 克隆 恢复 Clonezilla 再生龙 使用
  3. printf()详解之终极无惑-转载
  4. Java:socket服务端,socket服务端支持多连接,socket客户端,socket客户端支持发送和接受
  5. 【图数据库】史上超全面的Neo4j使用指南
  6. 有感于任正非老爷子的发言
  7. 2022-01-23
  8. Java-分析类初始化
  9. 【opencv学习】【图像金字塔】
  10. python入门之字符串处理_Python基础之字符串操作,格式化。
  11. GaussDB分布式Stream执行计划详解
  12. 曾是微信最大对手的它,如今却黯然退场,一代即时通讯App就此谢幕!
  13. 我的失败与伟大 —— 产品原型的打造
  14. Python与C:指针与按址传递
  15. udp广播收到重复包
  16. php输出cad文件,AutoCAD 二次开发 输出为WMF 或BMP文件
  17. 使用cython加速代码运行
  18. 复杂结构 异构数据同步
  19. 推特php博客,实例代码:使用PHP调用Twitter的RSS
  20. Hadoop安装错误:Cannot set priority of secondarynamenode process : xxxxx

热门文章

  1. Scrapy爬虫框架,爬取小说网的所有小说
  2. 牛客网数据库SQL实战14—— 从titles表获取按照title进行分组,注意对于重复的emp_no进行忽略。
  3. 微信小程序产品定位及功能介绍
  4. 某程序员在网吧敲代码,出类拔萃,网友:为何我被打的却是我
  5. 多客户端访问mysql_解决关于多客户端操作数据库并发问题
  6. 【行为识别综述准备】
  7. 什么是嵌入式AI开发?人工智能芯片指什么?STM32、树莓派、Jetson TX2、华为昇腾部署神经网络区别在哪?
  8. da2 Android版本固件,OPPOAce2官方系统刷机包(完整固件最新升级包ColorOS 7)
  9. 平面设计学习之四(PS-计算磨皮法)
  10. 解决Windows安装MySQL时出现msvcr120.dll文件丢失问题(完美解决)