刘汝佳《算法入门经典》答案.docVIP

  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.double 类型的输出格式为“%lf”. 2.double pi=4.0*atan(1.0);这样比较精确。 3.printf(d,m);可以在输出前补充上0,但是换做其他的字符就不可以了。 4.绝对值的输出用%d,如:printf(%d,abs(-10));不可以用%f. 第二章???循环结构程序设计 (2011-07-21 21:40:01)编辑[删除 标签: 分类: 1. 调试程序的新方法:IDE,gdb .(还没有学会) 2.判断是否是整数 floor(m+0.5)==m. ? 1.AABB问题: 法一:列举,然后判断是否是完全平方数,m=1100*a+11*b;? m==floor(m+0.5) 法二:枚举所有的数,然后分离位数,分别判断是否相等。 2.阶乘之和问题:输出结果的后六位 printf(%d,s00000) 3.使用计时器,可以测试程序的效率 #includetime.h printf(%.2lf,(double)clock()/CLOCKS_PER_SEC);注意的是,将其放入程序时,测试时会把键盘输入的时间一块算上,而如果不计可以使用命令行测试。 4.文件操作: (1)输入输出重定向: #define? LOCAL int main() {#ifdef LOCAL ?? freopen(data.in,r,stdin); ?? freopen(data.out,w,stdout); #endif ......... } (2)文件的保存和读取: int main() { FILE *fin,*fout; fin=fopen(data.in,rb); fout=fopen(data.out,wb); ..... fscanf(fin,%d,a); fprintf(fout,%d\n,a); fclose(fin);fclose(fout); } 第三章:数组和字符串 (2011-07-22 20:27:54)编辑[删除 标签: 分类: 1.当数组需要开的很大的时候,数组a[1000]的定义放到main函数外,否则会异常退出。 2.字符串其实就是数组,所以字符串里的函数在数组里同样适用,如 memset(b,a,sizeof(int)*k):在a中复制k个元素给b,是从首元素开始的。memset(b,a,sizeof(a))把整个全部复制。memset(a,0,sizeof(a)):将a全部初始化为0。 3.开灯问题: 控制等的开关 :if(j%i==0)a[j]=!a[j](之前要调用memset(a,0,sizeof(a))) 4.蛇形填数: 四个循环走:下—左—右—上;外面再套一层循环,控制个数。 5.最长回文: (1)怎样读取(2)怎样原样输出(3)怎样判断是否是回文 ? (1)不可以用scanf因为不可以读取空格,fgets(buf,sizeof(buf),stdin),从标准输入流中读取, 也可以从文件中读取,但此时读取的是一整行。 字符操作函数:isalpha,isdigital,isprint, isupper,islower,toupper,tolower,他们的返回值都是int 型。 (2)读取以后为了方便要把所有的字符转换成大写,但是要原样输出,所以要重新定义一个数组存放之前地字符串,并且设置一个数组存放他在原来字符串中的位置。 (3)判断回文;可以从头开始,但是从中间开始会更简便(要注意奇数个和偶数个的处理是不一样的) 第七章?暴力求解 (2011-07-28 14:49:10)编辑[删除 标签: 分类: 7.1 简单枚举 7.1.1 除法 输入正整数 n , 按从大到小的顺序输出所有形如 abcde/fghij = n 的表达式,其中a ~ j为0 ~ 9的数字(不可重复)。2 = n =79. 样例输入: 62 样例输出: 79546/01283 = 62 94736/01528 = 62 、、、、、、、、、、、、、、、、、、、、 #includeiostream #includeiomanip using namespace std; int findstartvalue(int m)//求的第一个是m的倍数的5位数 { ?int m1=m*1234; ?int m2=(1234/m+1)*m;;//防止m很小 ?return m1m2? m1:m2; } bool check(int m0,char flag[10]) { ?for(int k=0;k5;k++)//不可以用while(m00)因为这样如果除数中有0就测不出来了 ?{ ??if((++flag[m0])1) ???return false; ??m0/=10; ?}

文档评论(0)

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

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

1亿VIP精品文档

相关文档