2022年算法与程序设计实验报告 .pdf
《2022年算法与程序设计实验报告 .pdf》由会员分享,可在线阅读,更多相关《2022年算法与程序设计实验报告 .pdf(11页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、算法与程序设计实验报告二(4 学时)实验目的:1、掌握迭代算法的三方面工作;2、了解递推算法,掌握递推算法的思想;3、掌握递归算法的程序编写;。4、了解分治算法的思想;5、熟练使用二分查找方法实现代码的编写。实验内容:1、n!的递归算法的编写2、裴波那契(Fibonacci)数列的定义为:它的第1 项和第 2 项均为 1,以后各项为其前两项之和。若裴波那契数列中的第n 项用 Fib(n)表示,则计算公式为:1(n=1 或 2)Fib(n)=Fib(n-1)+Fib(n-2)(n=2)试编写出计算Fib(n)的递归算法3、在一个给定的n 个元素的有序序列中查找出与给定关键字x 相同的元素的具体位
2、置。即输入一个n 个元素的序列,其中 n 个元素是按从小到大的顺序排列的,查找是否存在给定的值x。实验代码:1、n!的递归算法的编写。#include intdigui(int n)if(n=1)return 1;else return n*digui(n-1);void main()int n;printf(请输入待求阶乘数(小于 15 的一个数):);scanf(%d,&n);printf(结果为:%dn,digui(n);2、计算 Fib(n)的递归算法名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 11 页 -#include long Fib(int n)if(n=1|
3、n=2)/终止递归条件return 1;else return Fib(n-1)+Fib(n-2);void main()int n;printf(请输入裴波那契数列的待求项数:);scanf(%d,&n);printf(裴波那契数列第%d项值为%ldn,n,Fib(n);3、二分查找法的实现。#include intBinarySearch(int a,intn,int x)/*二分查找功能函数*/int l=0,r=n,i;while(l=r)i=(l+r)/2;if(x=ai)return i;else if(xai)r=i-1;else l=i+1;return-1;void maop
4、ao(int a)/*冒泡排序功能函数*/inti,j;int n=10;for(i=0;in;i+)for(j=0;jaj+1)int temp;temp=aj;aj=aj+1;aj+1=temp;void main()inti,a10,x;名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 11 页 -int flag=-1;printf(请输入 10 个带查找数据(空格分隔):);for(i=0;i10;i+)scanf(%d,&ai);maopao(a);printf(带查序列有序化后变为:);for(i=0;i10;i+)printf(%d,ai);printf(n);pr
5、intf(请输入待查关键字:);scanf(%d,&x);flag=BinarySearch(a,10,x);if(flag=-1)printf(未找到带查关键字!n);else printf(找到关键字,位于有序序列的第%d 个位置!n,flag+1);算法与程序设计实验报告三(4 学时)实验目的:6、了解贪心算法思想7、掌握贪心法典型问题,如背包问题、作业调度问题等。实验内容:4、键盘输入一个高精度的正整数n(n10 位)去掉任意s 个数字后剩下的数字按原左右次序组成一个新的正整数。编程对给定的n 和 s,寻找一种方案,使得剩下的数最小。5、设计实现超市收银程序,假设顾客在超市购买各种商品
6、,来到收银台结账,收银员具有面值为100,20,10,5 和 1 元的纸币和各种面值为5 角、2 角、1 角的硬币。设计程序计算顾客各种所买商品的钱数,并根据顾客所付的钱数输出零钱的数目及要找的各种货币的数目。算法思想:贪心算法的基本思路1.建立数学模型来描述问题。2.把求解的问题分成若干个子问题。3.对每一子问题求解,得到子问题的局部最优解。4.把子问题的解局部最优解合成原来解问题的一个解。实验代码:名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 11 页 -1.键盘输入一个高精度的正整数n(n10 位)去掉任意s个数字后剩下的数字按原左右次序组成一个新的正整数。编程对给定的n
7、 和 s,寻找一种方案,使得剩下的数最小。#include#include#define M 100 main()charchM;int rM,dM,l,s,i,j,k;printf(请输入正整数:);gets(ch);printf(请输入删除的位数:);scanf(%d,&s);l=0;for(i=0;chi!=0;i+)ri=i;l+;for(i=0;is;i+)for(j=0;jchj+1)break;if(j=l-i)k=l-i-1;else k=j;di=rk;for(j=k;jl-i-1;j+)chj=chj+1;rj=rj+1;chj=0;printf(删除%d 后最小的整数为:
8、%sn,s,ch);printf(删除的数位为:);for(i=0;is;i+)printf(%dt,di+1);printf(n);return 0;2.设计实现超市收银程序,假设顾客在超市购买各种商品,来到收银台结账,收银员具有面值为 100,20,10,5 和 1 元的纸币和各种面值为5 角、2 角、1 角的硬币。设计程序计算顾客各种所买商品的钱数,并根据顾客所付的钱数输出零钱的数目及要找的各种货币的数目。名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 11 页 -#include#include void main()doubleprice,total=0,givemon
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年算法与程序设计实验报告 2022 算法 程序设计 实验 报告
限制150内