




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
12月10日上机测试 (函数和数组) 题目与答案,南京大学 计算机科学与技术系 Base of Programming,2,题目一,1.写两个函数计算从m中选n的组合数即计算 , 一个函数不使用递归的方法计算,一个函数使用递归方法计算,函数函数原型可分别声明如下:(12分) int comb_loop(int m, int n); int comb_recursion(int m, int n); ( ) 用main函数调用两函数并打印结果。,算法与思路,1.非递归算法 主要是利用循环实现组合公式 或,南京大学 计算机科学与技术系 Base of Programming,3,int comb_loop(int m,int n) int i , temp, a, b, c; for(i=1,a=1;i=m; i+) a=a*i; for(i=1,b=1;i=n; i+) b=b*i; for(i=1,c=1;i=(m-n); i+) c=c*i ; temp=a/(b*c); return temp; ,int comb_loop(int m,int n) int a, b; a=b=1; for (i=m; i(m-n); i-) a=a*i; for (i=1; i=n; i+) b=b*i; return a/b; ,算法与思路,2.递归算法 利用递归公式: 递归的结束条件:,南京大学 计算机科学与技术系 Base of Programming,4,int comb_rescurision(int m,int n) if(n=1) return m; else return (m-n+1)*comb_rescurision(m,n-1)/n; ,常见错误,1.没有递归结束条件,造成栈溢出; 2.没有使用递归完成,如:,南京大学 计算机科学与技术系 Base of Programming,5,int comb_recursion(int m,int n) int shang=m; for(int i=1;in;i+) shang=(m-i)/(i+1)*shang; return shang; ,常见错误,3.不理解递归,出现以下非法表达式:,南京大学 计算机科学与技术系 Base of Programming,6,int comb_recursion(int m,int n) comb_recursion(m,1)=m; comb_recursion(m,n)=(m-n)/(n-1)*comb_recursion(m,(n-1); return comb_recursion(m,n); ,题目二,下面是一个5阶的螺旋方阵。试编程打印出此形式的n(n10)阶的方阵(顺时针方向旋)。(8分),南京大学 计算机科学与技术系 Base of Programming,7,算法与思路,1.先按要求从外到内一圈一圈赋值,最后打印结果;,南京大学 计算机科学与技术系 Base of Programming,8,int main() int a1010=0,x,n,n0,m=1,i,j; cinx; n=x; n0=0; while(m=n0;i-) an-1i=m+;/赋值下排 for(i=n-2;i=n0+1;i-) ain0=m+;/赋值左排 n0+; n-; if(x%2=1) a(x-1)/2(x-1)/2=x*x; for(i=0;ix;i+) for(j=0;jx;j+) coutaijt; coutendl; ,算法与思路,2.采用递归的方法 由外向里顺时针旋转时,最外 层数据输出后,内层的图形只不 过是层数减少,新问题和原问采 用相同的解法,所以可以采用递 归。,南京大学 计算机科学与技术系 Base of Programming,9,int huihuan(int n,int row,int col,int first) int row2 = row; int col2 = col; for(;colcol2;col-)/横向左赋值n-1 arrrowcol = first+; for(;rowrow2;row-)/列向上赋值n-1 arrrowcol = first+; if(n-row1)/没有完成,调用递归完成下一圈赋值 huihuan(n-1,row+1,col+1,first); else if(n-row=1)/n是奇数时,要单独处理中心数 arrrowcol=first; return 0; ,int arr1010; int n; void main() cinn; huihuan(n,0,0,1); for(int i=0;in;i+)/输出矩阵 for(int j=0;jn;j+) coutarrij“t“; coutendl; ,常见错误,1.大多数同学只能正常打印第一圈,里面的循环条件和关系没有找对,不能正确对数组赋值; 2.有同学采用每层每 列逐次赋值,如:,南京大学 计算机科学与技术系 Base of Programming,10,const int N=5; int aNN; int main () int i,j,n=1; for (n=1;n=25;n+) if (n=5) a0n-1=n; else if (n=9) an-54=n; else if (n=13) a413-n=n; else if (n=16) a17-n0=n; else if (n=19) a1n-16=n; else if (n=21)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 暑期辅导班协议书范本7篇
- 兴和大队交通安全培训课件
- 兴化市安全生产培训课件
- 初中安全培训心得课件
- 化学品研发安全培训课件
- 八下《钢铁是怎样炼成的》导读课公开课一等奖创新教学设计
- 九上13《湖心亭看雪》公开课一等奖创新教学设计-2
- 统编版四年级上册语文 21 古诗三首 公开课一等奖创新教学设计(2课时)
- 创伟职业安全培训课件
- 2026年中考语文文言文专练专题02七年级下册古诗文默写(学生版+解析)
- 彩色水稻种植技术要求
- 2025年湖南银行社招笔试题库及答案
- 2025年精密数控机床进口采购合同
- DB44T 2635-2025 国土变更调查县级数据库建设技术规范
- 海南省2025年中考化学真题试题(含答案)
- 脱证中医护理常规
- 中国全自动样品处理系统行业投资分析及发展战略咨询报告
- 未来趋势:2025年采购管理优化方案
- 某小学科学实验操作考核细则
- 执法办案培训课件
- 中小学小班化教学模式与支持体系构建研究
评论
0/150
提交评论