下载此文档

实验8函数递归函数.doc


文档分类:IT计算机 | 页数:约8页 举报非法文档有奖
1/8
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/8 下载此文档
文档列表 文档介绍
淮海工学院计算机科学系
实验报告书
课程名: 《C语言程序设计A 》
题目: 实验8 函数
——递归函数
班级: 软嵌151
学号: 2015123349
姓名: 陈正宁
评语:
成绩: 指导教师:
批阅时间: 年月日
实验内容或题目
(1)用递归编写n!的函数,并在main主函数中调用此函数。
(2)有n个大小不同的盘片从大到小放在A柱上,另有B和C两个空柱,要求将这n个盘片从A柱搬到C柱上,在搬动过程中,每次只能搬一个盘片,而且小的不能放在大的之下。编写hanio函数实现搬迁过程。
(3)编写一个程序,求解皇后问题:在n×n的方格棋盘上,放置n个皇后,要求每个皇后不同行、不同列、不同左右对角线。
实验目的与要求
(1)要求熟练掌握函数的定义和调用,熟悉函数返回值的使用。
(2)熟悉函数调用的方式和过程。
(3)重点掌握递归函数的使用。
(4)要求实验的第2题采用递归函数编写,盘片的数目在main主函数中输入。提示:函数的参数定义如hanio(n,A,C,B),表示将n个盘片从A柱通过C柱搬到B柱。
(5)要求实验的第3题采用递归函数编写皇后的个数n由用户输入,其值不能超过20;采用整数数组q[N]求解结果,因为每列只能放一个皇后,q[i]的值表示第i个皇后所在的行号,即该皇后放在(q[i],i)的位置上。求解皇后问题的递归模型如下:
place(i,n):若i=n,则n个皇后放置完毕,输出解(输出q数组元素)
place(k,n):在第k列找一个合适位置i,放置一个皇后(即q[k]=i);place(k+1,n);其中,place(k,n)表示前面的第1,…,k-1个皇后放置好后,现在用于放置k, …,n的皇后。
实验步骤与源程序
⑴实验步骤
⑵源代码
(1)、
#include<>
long fac(int n)
{
long f;
if(n==0||n==1)
f=1;
else
f=n*fac(n-1);
return (f);
}
void main()
{
int n;
printf("请输入一个整数n:");
scanf("%d",&n);
printf("%d!=%d\n",n,fac(n));
}
(2)、
#include<>
int main()
{
void hanio(int n,char A,char C,char B);
int m;
printf("请输入盘片的数量:");
scanf("%d",&m);
printf("移动%d个盘片的步骤如下:\n",m);
hanio(m,'A','B','C');
return 0;
}
void hanio(int n,char one, char two, char three)
{
void move(char x,char y);
if(n==1)
move(one,three);
else
{
hanio(n-1,one,three,two);
move(one,three);
hanio(n-1,two,one,three);
}
}
v

实验8函数递归函数 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数8
  • 收藏数0 收藏
  • 顶次数0
  • 上传人63229029
  • 文件大小147 KB
  • 时间2017-07-10