您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 显示杨辉三角实验报告
数据结构实验报告2013.11.141显示杨辉三角实验报告姓名:许严班级:计122学号:12130230501.问题描述杨辉三角如图2.4.3所示,其特点是两个腰上数值是1,其他位置上的每一个整数都是它的上一行相邻两个整数之和。问题是:对于指定的最大行数rmax,要求从第一行到第rmax逐行显示杨辉三角形的所有元素。2.基本要求⑴设计输出形式,尽量反映杨辉三角的特点。⑵设计计算杨辉三角形各行数值的方法。⑶输入:rmax从键盘输入。⑷输出:屏幕输出杨辉三角形.3.实现提示⑴存储设计计算杨辉三角形第i行时,如果在第i-1行两侧各添加一个0,则第i行的第j个元素等于第i-1行的第j-1个元素与第j个元素的和。计算如图2.4.4所示。第i行计算完,第i-1行的数据就没有用了,依据第i行数据可计算第i+1行的数据。11112113311464115101051…图2.4.3杨辉三角形从上述计算中不难看出,第i行的元素从左往右依次可被求得,求解过程中也是从左往右依次使用地i-1行的数据,显然,具有先入先出的特点。所以,可借助一个队列存放计算过程中所需的数据,如图2.4.5所示。但随着航数的增加,队列会很长。所以,可以设置一循环队列,队长不少于rmax+2,边计算边出队。(2)算法设计计算各行元素的算法步骤如下。Step1:队列初始化,0、1入队。队头ftont指向0处,队尾指向1后。Step2:i从1到rmax,循环执行下列操作,求第i行数据。2.10入队。2.2从队首起直到队尾,每出队两元素,求和后入队。输出时注意0不输出。数据结构实验报告2013.11.142(3)程序设计#includeiostreamusingnamespacestd;#includeiomanipintFd(intx,inty){intt=1;intk=1;for(inti=y;ix;i--){t=t*i;t=t/k;k++;}returnt;}intmain(){intnsize;cout请输入大小endl;cout提示:按Ctrl+Z两次退出!endl;while(cinnsize){for(inti=0;i=nsize;i++){for(intk=0;k=nsize;k++){if(ki){cout;}}for(intj=0;j=i;j++){coutsetw(3)Fd(j,i);}coutendl;}cout请输入大小endl;}return0;数据结构实验报告2013.11.143}4.测试与运行给出行数,从运行结果验证程序设计是否正确。运行截图:5.实验体会
本文标题:显示杨辉三角实验报告
链接地址:https://www.777doc.com/doc-7332393 .html