递归实验报告.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
递归实验报告 篇一:字符串,   宁波工程学院电信学院计算机教研室   实验报告   一、实验目的   1)熟悉串的定义和串的基本操作。   2)加深对串数据结构的理解,逐步培养解决实际问题的编程能力。   3)熟悉递归的定义和递归的算法设计。   4)加深对递归算法的理解,逐步培养解决实际问题的编程能力。   二、实验环境   装有Visual C++6.0的计算机。   三、实验内容   1、凯撒加密算法   凯撒密码(caeser)是罗马扩张时期朱利斯?凯撒(Julius Caesar)创造的,用于加密通过信使传递的作战命令。它将字母表中的字母移动一定位置而实现加密。 他的原理很简单,说到底就是字母与字母之间的替换。每一个字母按字母表顺序向后移3位,如a加密后变成d,b加密后变成e,······x加密后变成a,y加密后变成b,z加密后变成c。   例如:“baidu”用凯撒密码法加密后字符串变为“edlgx”。   试写一个算法,将键盘输入的文本字符串(只包含a~z的字符)进行加密后输出。 另写一个算法,将已加密后的字符串解密后输出。   提示:   ? 如果有字符变量c加密后则=’a’+(c-‘a’+3)%26   ? 采用顺序结构存储串,键盘输入字符串后保存到顺序串中;输出用顺序串的输出函数。   程序:   #include   #define MaxSize 100   typedef struct //串的类型定义   char ch[MaxSize];//存放串字符   int len; //串长   }SqString;   void SetString //设置源码   {   int i;   printf;   scanf;   for; //计算串的长度   s.len=i;   }   void TranString//开始加密   {   int i;   for   {   if   t.ch[i]=a+%26; //将每一个字母按字母表顺序向后移3位   else   t.ch[i]=s.ch[i];//如果字符不是字母a~z,则原样保留   }   t.len=s.len;   }   void RecoverString //开始解密   {   int i;   for   {   if //防止解密时字母溢出,对a,b,c三个字母另外考虑   t.ch[i]=s.ch[i]-3;   else if   t.ch[i]=s.ch[i]+23;   else   t.ch[i]=s.ch[i]; //如果字符不是字母a~z,则原样保留 }   t.len=s.len;   }   void DispString //输出字符串   int i=0;   while   {   printf; //字母的逐个输出   i++;   }   printf;   }   int main   {   SqString s1,s2,s3; //s1是源码,s2是加密后密码,s3是解密后密码   SetString; //输入字符串   DispString; //输出字符串   TranString;//加密   DispString; //加密后输出字符串   RecoverString;//解密   DispString; //解密后输出字符串   return 0;   }   按实验要求首先定义顺序串,实验的难点在于密码的加密 和解密的实现,特别是再解密时,字母的溢出问题,在参考网上程序后很好地解决了这个问题。在字符串的输入时,%s和%c的用法混淆,导致实验一度无法进行。实验编完后,又发现一个如果输入的是非字母的字符,程序就无法运行,因此添加了非字母字符维持原样的代码,使得程序更加完整。   2、求解n皇后问题   编写一个程序,求解皇后问题:在n×n的方格棋盘上,放置n个皇后,要求每个皇后不同行、不同列、不同对角线。   要求:使用递归算法求解;皇后的个数n由用户输入,其值不能超过20。   程序:   #include   #include   #include   const int N=20; //最多皇后个数   int count=0;//记录解个数   int q[N]; //存放皇后各皇后所在的行号   void print{//输出一个解   int i;   count++;   printf;   for   printf;   printf;   }   int find{ //测试第k列的i行上能否摆放皇后   int j;   j=1;   whil

文档评论(0)

a888118a + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档