循环与递归算法实验_第1页
循环与递归算法实验_第2页
循环与递归算法实验_第3页
循环与递归算法实验_第4页
循环与递归算法实验_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、目录实验一 循环与递归算法的应用- 3 -一、实验目的- 3 -二、实验内容- 3 -三、实验步骤- 4 -四.程序调试及运行结果分析- 6 -五.实验总结- 6 -附录:程序清单 (程序过长,可附主要部分)- 7 -实验一 循环与递归算法的应用 一、实验目的1掌握循环、递归算法的基本思想、技巧和效率分析方法。2熟练掌握循环和递归的设计要点,清楚循环和递归的异同。3学会利用循环、递归算法解决实际问题。二、实验内容 1.问题描述:题目一:打印图形编写程序:根据参数n打印具有下面规律的图形,如,当n=4时,图形如下:1 5 2 8 6 3 10 9 7 4 题目二:回文判断判断s字符串是否为“回文

2、”的递归程序。题目三:计算前n项和根据参数n,计算1+2+n。要求:用循环和递归分别实现2.数据输入:个人设定,由键盘输入。3.要求:1)上述题目中学号为单数的做题目一和三,双数做二和三。上机前,完成程序代码的编写2)独立完成实验及实验报告三、实验步骤1.理解算法思想和问题要求;2.编程实现题目要求;3.上机输入和调试自己所编的程序;4.验证分析实验结果;5.整理出实验报告。附:实验报告的主要内容一实验目的二问题描述三算法设计解答第二题,思路为设计一个递归函数,并定义三个参数字符数组s100、整型变量len和i。在函数中利用条件语句判断第一个和最后一个字符是否相同,依次往下进行比较判断,如果是

3、回文数返回1,不是则返回0。并在主函数中利用条件语句将0、1转化为自然语言。Main函数输入字符调用递归函数进行判断是则返回1,否返回0转化成自然语言后输出 图2.1 程序运行流程图第三题计算1到n的数值总和,用循环算法需要设计一层循环,将语句sum+=i;计算n次累加得出结果。但是循环算法相比在时间效率上不如递归算法。所以,可以用递归算法计算较为简单,以n=1为终止条件,多次调用自身即可得出答案。fact(n) fact(n-1) fact(2) fact(1) 递归 回溯图3.1 递归算法示意图四.程序调试及运行结果分析1) 运行程序后,输入asdfghgfdsa 进行判断,运行成功是回文

4、数则返回1值转化为自然语言输出:是回文数。图2.2 判断回文数2) 运行程序后,输入n的数值为100由计算机计算1到100的数字相加之和,运行成功则输出正确结果。图3.2 计算总和五.实验总结这次实验的两道题都用到了递归,递归算法虽然是我们以前已经学过的内容,但是通过这次实验我真正用起来的时候,才发现真的不知从何下手。后来通过书上和老师上课讲解的例题发现,递归算法设计的关键找出递归关系和递归终止条件。递归关系就是使问题向边界条件转化的规则。比如第二题利用条件语句判断第一个和最后一个字符是否相同,依次往下进行比较判断,如果是回文数返回1,不是则返回0。第三题终止条件就是n是否等于1,结束时返回结

5、果。这次实验也使我掌握了构造递归算法的方法技巧,使我更加深入的了解掌握了递归算法,收获较大。附录:程序清单 (程序过长,可附主要部分)第二题程序如下:#include <iostream.h>#include <string.h>int huiwen(char s100,int len,int i)if(i>(len-1)/2)if(si=slen-1-i)return 1;elsereturn 0;elseif(si=slen-1-i)return huiwen(s,len,i+1);/如果满足回文条件才递归elsereturn 0;int main()char

6、 s100;int len;int n;cin>>s;len=strlen(s);n=huiwen(s,len,0);if(n=1)cout<<"是回文数"<<endl;elsecout<<"不是回文数"<<endl;return 0;第三题程序如下:循环:#include<iostream>using namespace std;int main()int n,i,sum=0;cin>>n;for(i=1;i<=n;i+)sum+=i;cout<<"结果是:"<<sum<<endl;return 0;递归:#include<iostream>using namespace std;int fact(int n);int main()int n,c;cin>>n;c=fact(n);cout<<&quo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论