第十讲最后一讲4教学幻灯片.ppt

  1. 1、本文档共29页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
程序设计实习 习题课 /cpp2010 习题课 2951 浮点数高精度求幂 2775 文件结构图 2787 算24 acm3278 catch the cow Acm1321棋盘问题 2951 题目描述:有一个实数 R ( 0.0 < R < 99.999 ) ,要求写程序精确计算 R 的 n 次方。n 是整数并且 0 < n <= 25。 输入:输入包括多组 R 和 n。 R 的值占第 1 到 第 6 列, n 的值占第 8 和第 9 列。 输出:对于每组输入,要求输出一行,该行包含精确的 R 的 n 次方。输出需要去掉前导的 0 后后面不不要的 0 。如果输出是整数,不要输出小数点。 2951 思路:以95.123 12为例 求出小数部分长度 – 3位 去掉小数点,变成整数95.123 -> 95123 求95123^12 = 548815620517731830194541899025343415715973535967221869852721 重新点小数点548815620517731830194541.899025343415715973535967221869852721 2951 代码 #include<stdio.h> #include<string.h> const int MAX=100; char s[7]; int a[MAX],e,p,b,be,en,i; void mul() { int i,w=0; for(i=0;i<MAX;i++) { a[i]=a[i]*b+w; w=a[i]/10; a[i]=a[i]-w*10; } } int main() { while (scanf("%s %d",s,&e)!=EOF) { memset(a,0,sizeof(a)); b=0; //Step 1 and Step 2 for(i=0;i<strlen(s);i++) if (s[i]=='.') p=strlen(s)-i-1; else b=b*10+s[i]-'0'; a[0]=1; //Step 3 for(i=0;i<e;i++) mul(); p*=e; //Step 4 for (be=MAX-1;a[be]==0&&be>=p-1;be--); for (en=0;a[en]==0&&en<p;en++); for (i=be;i>=p;i--) printf("%d",a[i]); if (en<p) printf("."); for (i=p-1;i>=en;i--) printf("%d",a[i]); printf("\n"); } return 0; } 2775 文件结构图 file1 file2 dir3 dir2 file1 file2 ] ] file4 dir1 ] file3 * file2 file1 * # DATA SET 1: ROOT | dir3 | | dir2 | | file1 | | file2 | dir1 file1 file2 file3 file4 DATA SET 2: ROOT file1 file2 2775 文件结构图 file1 file2 dir3 dir2 file1 file2 ] ] file4 dir1 ] file3 * file2 file1 * # 回想表达式处理的题目, 没有必要在内存生成整个目录树,因为整个目录树已经以递归的结构存储在输入数据里了. 因此递归处理输入数据的过程就是递归遍历整个目录树的过程。 递归过程中,碰到目录名就立刻输出,按题目要求,碰到文件名不能立刻输出,要存起来,等整个目录处理完后,再排序输出。 #include <iostream> #include <vector> #include <string> #include <algorithm> using namespace std; void ListDir( const char * root); //处理文件夹 int nCurLevel = 0; //记录当前所在的目录层次 int MyCompare( const void * e1, const void * e2) //对文件名排序的比较函数 { return strcmp( (const char * ) e1, (const char * ) e2); } int main() { int nDatasetNo = 1; do { cout << "

文档评论(0)

yuzongjuan7808 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档