考研数据结构之栈(2.5)——练习题之求解二次方根A的迭代函数,写出相应的递归算法和非递归算法(C表示)
题目
分析
实际上就是递归的使用。
代码
核心代码:
/* 递归算法 */
float sqrt(float A,float p,float e) {if(abs(p*p-A)<e) {return p;} else if(abs(p*p-A)>=e) {sqrt(A,(p+A/p)/2,e);}
}/* 非递归算法 */
float sqrt_2(float A,float p,float e) {while(abs(p*p-A)>=e) {p=(p+A/p)/2;}return p;
}
完整代码:
#include<stdio.h>#define maxSize 20/* 求绝对值 */
float abs(int x) {if(x<0) {return -x;} else {return x;}
}/* 递归算法 */
float sqrt(float A,float p,float e) {if(abs(p*p-A)<e) {return p;} else if(abs(p*p-A)>=e) {sqrt(A,(p+A/p)/2,e);}
}/* 非递归算法 */
float sqrt_2(float A,float p,float e) {while(abs(p*p-A)>=e) {p=(p+A/p)/2;}return p;
}int main() {float A=10;float p=3;float e=2.3;float r1=sqrt(A,p,e);printf("%2.f\n",r1);float r2=sqrt_2(A,p,e);printf("%2.f\n",r2);return 0;
}
运行结果:
考研数据结构之栈(2.5)——练习题之求解二次方根A的迭代函数,写出相应的递归算法和非递归算法(C表示)相关推荐
- 给定一个n节点的二叉树,写出一个O(n)时间非递归过程,将该树每个节点关键字输出,可以使用一个栈作为辅助数据结构(算法导论第十章10.4-3)
给定一个n节点的二叉树,写出一个O(n)时间非递归过程,将该树每个节点关键字输出,可以使用一个栈作为辅助数据结构 (算法导论第十章10.4-3) template<typename T> ...
- 天勤考研数据结构笔记—栈的C语言实现
栈的基本概念 栈的定义:栈是一种只能在一端进行插入或删除操作的线性表.其中允许进行插入或删除的一端称为栈顶(top).栈顶是由一个称为栈顶指针的位置指示器(其实就是一个变量,对于顺序栈,就是数组索引, ...
- 五、考研数据结构笔记——栈与队列的应用
一.应用一:栈在括号中的应用 1.1 问题描述 一般的写一个算数表达式,看看括号是否是匹配的. 1.2 算法思路 初始设置一个空栈,顺序读入括号 若是左括号压入栈中. 若是右括号,看是否与栈顶的左括号 ...
- 王道计算机考研 数据结构 (栈和队列)
第三章.栈和队列 3.1.1_栈的基本概念 栈的定义 栈的基本操作 栈的常考题型 思维导图 3.1.2_栈的顺序存储实现 顺序栈的定义 初始化操作 进栈操作 出栈操作 读栈顶元素操作 另一种方式 这种 ...
- 2022年考研数据结构_3 栈和队列
https://gitee.com/fakerlove/Data-Structure 文章目录 3. 栈和队列 3.1 栈 3.1.1 栈的定义 3.1.2 栈的实现 3.1.3 栈的应用 (1)递归 ...
- 天勤考研数据结构———顺序栈、链栈操作
typedef struct{ //定义顺序栈 int data[maxsize]; int top;//定义栈顶指针 }SqStack; void in ...
- 计算机队列概念,2020计算机专业考研数据结构知识点:栈、队列和数组
2020计算机专业考研数据结构知识点:栈.队列和数组 1.栈.队列的定义及其相关数据结构的概念,包括:顺序栈.链栈.循环队列.链队列等.栈与队列存取数据(请注意包括:存和取两部分)的特点. 2. 掌握 ...
- 考研数据结构填空题整合_做题版
考研数据结构填空题整合 目录 考研数据结构填空题整合 一.ZYL组 ZYL组一 ZYL组二 ZYL组三 ZYL组四 ZYL组五 ZYL组六 ZYL组七 ZYL组八 二.TJP组 TJP组一 TJP组二 ...
- 一、考研数据结构笔记——引言及目录
一.关于我理解的数据结构 1. 引言 本人自2021年3月准备考研,考研主要是为了提升学历,本科院校不是理想.迫切需要提高学历. 写这刊博客,主要是总结我考研路上对数据结构的一些理解,以及为了方便我后 ...
- 西安理工大学计算机考研数据结构863整理总结
第一章 绪论 考试大纲 1)了解数据元素.数据结构.抽象数据类型.存储结构等概念:了解算法概念及算法设计的基本要求 : 2)掌握算法分析方法.语句的频度和估算时间复杂度.空间复杂度分析方法. 考查要点 ...
最新文章
- 开源 java CMS - FreeCMS2.8 自定义标签 channelSon
- mysql中length与char_length字符长度函数使用方法
- 强大的grep命令使用经验
- 【信息抽取】介绍一种端到端的关系抽取方法
- 如何把你的Windows PC变成瘦客户机
- PrimerCH3字符串,向量,迭代器,数组
- php v-for=,Vue中v-for循环节点的实现代码
- python写word表格_使用表格—— 使用Python读写Office文档之三
- 让英文版的LINUX 支持中文显示
- gqview的安装与汉化
- C语言——实现简单的猜数字游戏
- 《数学分析》收敛数列的性质
- protoc 编译工具
- 计算机专硕怎么规划未来?
- Android的5种快捷开关的实现
- xp系统简单tcpip服务器,Win XP系统下添加打印机的方式手工添加TCP/IP端口
- kali Linux的优点与缺点
- ChinaSoft 论坛巡礼 | 软件智能合成理论与方法
- SVN介绍及使用总结
- 甲骨文面试经历 Oracle Interview
热门文章
- 谷歌Android UI设计技巧
- 使用内网服务器上线微信小程序总结
- 输入阻抗、输出阻抗、阻抗匹配和特性阻抗
- php怎么画五星红旗,PHP_php基于GD库画五星红旗的方法,本文实例讲述了php基于GD库画 - phpStudy...
- Mac破解软件 “XXX”意外退出 奔溃解决方法
- mysql5.7压缩包安装教程
- android 画布抗锯齿,怎么在Android应用中利用paint与Canvas实现抗锯齿效果
- vue如何区别浏览器刷新和关闭
- P1336 课题选择
- matlab无限长一维原子链,优·王淑华固体物理答案第三章.ppt