第十周枚举一.pptVIP

  1. 1、本文档共33页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第十周枚举一

求高精度幂 问题描述 Description 3、解题思路 4、参考程序 4、参考程序 4、参考程序 4、参考程序 4、参考程序 什么是枚举 生理周期 问题描述 问题描述 问题描述 3、解题思路 3、解题思路 4、参考程序 称硬币 问题描述 问题描述 3、解题思路 3、解题思路 4、参考程序 4、参考程序 4、参考程序 4、参考程序 完美立方 问题描述 问题描述 3、解题思路 3、解题思路 4、参考程序 此题的思路非常简单:给定4 个整数的四元组(a、b、c、d),判断它们是否满足完美立方等式a^3 = b^3 + c^3 + d^3。对全部的四元组进行排序,依次进行判断。如果一个四元组满足完美立方等式,则按照要求输出。先判断a值小的四元组;两个四元组的a 值相同,则先判断b值小的;两个四元组的a值和b值分别相同,则先判断c值小的。关键是解决两个方面的问题: * * 第十讲 枚举(一) ACM算法与程序设计 1、链接地址 /JudgeOnline/ problem?id=1001 2、问题描述 对数值很大、精度很高的数进行高精度计算是一类十分常见的问题。比如,对国债进行计算就是属于这类问题。 现在要你解决的问题是:对一个实数R( 0.0 R 99.999 ),要求写程序精确计算 R 的 n 次方(Rn),其中n 是整数并且 0 n = 25。 输入格式 输入包括多组 R 和 n。 R 的值占第 1 到第 6 列,n 的值占第 8 和第 9 列。 输出要求 对于每组输入,要求输出一行,该行包含精确的 R 的 n 次方。输出需要去掉前导的 0 后不要的 0 。如果输出是整数,不要输出小数点。 输入样例 95.123 12 0.4321 20 5.1234 15 6.7592 9 98.999 10 1.0100 12 输出样例 548815620517731830194541.899025343415715973535967221869852721 .00000005148554641076956121994511276767154838481760200726351203835429763013462401 43992025569.928573701266488041146654993318703707511666295476720493953024764121021618164430206909037173276672 90429072743629540498.107596019456651774561044010001 1.126825030131969720661201 解决本题的基本思路是把底数转化为整数,同时记住原数有几位小数(注意不能包括末尾多余的0),在高精度乘法结束后再添加上小数点即可。 为便于计算,可定义一个结构体表示一个大整数,如下: typedef struct//记录数的长度,减少循环 { int number[LEN]; int len; } digit; 在运算结束时,添加小数点要注意小数位与高精度乘法结果有3种可能的关系:(1)小数位数数位数;(2)小数位等于整数位;(3)小数位整数位。 注意小数位数也可能为0。 #include stdio.h #define LEN 150 typedef struct//记录数的长度,减少循环 { int number[LEN]; int len; } digit; //a,b是乘数,c是积 void multiply(digit *a, digit *b, digit *c) { int i,j,t; c-len=a-len+b-len;//先乘,后进位 for(i = 0; i c-len; i++) //清零 c-number[i] = 0; for(i = 0; i b-len; i++) //逐位作乘法 { for(j = 0; j a-len; j++) c-number[i + j] += a-number[j] * b-number[i]; } for(i = 0; i c-len-1; i++)//统一进位 { if(c-number[i] = 10) { c-number[i+1]+=c-number[i]/10; c-number[

文档评论(0)

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

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

版权声明书
用户编号:5134022301000003

1亿VIP精品文档

相关文档