精确e的小数点后位数

上传人:xiao****1972 文档编号:84822198 上传时间:2019-03-05 格式:DOC 页数:7 大小:152KB
返回 下载 相关 举报
精确e的小数点后位数_第1页
第1页 / 共7页
精确e的小数点后位数_第2页
第2页 / 共7页
精确e的小数点后位数_第3页
第3页 / 共7页
精确e的小数点后位数_第4页
第4页 / 共7页
精确e的小数点后位数_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《精确e的小数点后位数》由会员分享,可在线阅读,更多相关《精确e的小数点后位数(7页珍藏版)》请在金锄头文库上搜索。

1、题 目:精确e的小数点后位数(位数大于5000)题目:精确e的小数点后位数。(位数大于5000位)。程序代码:/#include该头文件与String头文件功能大致相同,均为字符串模板类,可以定义字符串指针char*。/#include该头文件包含,即模板类中使用的assert函数,功能是可以在出错的时候指出。/#include该头文件包含输入输出流。/程序设计思路:e = 1 + 1 + 1/2! + 1/ 3! + 1/4! + . + 1/n!(这是估算自然常熟e的公式)。/ int length : 希望计算的长度,例如5000为希望计算到小数点后五千位。/ char * result

2、 : 结果存储,需要预先分配空间。本程序采用十六进制,即本程序中数字0-9存储为 0x00 - 0x09。/ 程序优越性较强:可以在一秒以内计算到小数点后10000位。#include#include#includeusing namespace std;void calculateE(int length, int * result)/这是一个模板类的定义。int * tmp;int * lastTmp;int * tempResult2;/分配两个空间,存放的是指针。assert(result);/如果程序遇到错误,将返回提示信息。tempResult0 = new intlength;t

3、empResult1 = new intlength;tmp = tempResult0;lastTmp = tempResult1;int tmpIndex = 0;memset(lastTmp,0,length*sizeof(int);/该函数的功能就是把lastTmp所指的一段数组空间清0。lastTmp0 = 1; for (int cal = 2;cal = length; +cal) memset(tmp,0,length*sizeof(int);int firstNoZero = 0;static int div = 1;for (;div = cal; +div)int quo

4、 = 0;int rem = 0;for (int j = 0; j= firstNoZero - 1; -i) int tmp_sum = tmpi + resulti + flag;flag = (tmp_sum = 10 ? 1 : 0);resulti = (flag ? tmp_sum - 10 : tmp_sum);/flag如果大于10,则减去10再赋值。否则,直接赋值。 /估算到小数点后length位的算法。 lastTmp = tmp; tmpIndex = (tmpIndex ? 0 : 1); tmp = tempResulttmpIndex;delete tempRes

5、ult0;delete tempResult1;result0 += 2;/result0存放最终结果。int main()int n;coutn;coutthe newline followed by 50 numbern;/以每行50个数输出结果。int *result=new intn+1;memset(result,0,(n+1)*sizeof(int);calculateE(n,result);/调用calculateE。cout2.n;for(int i=0;in;+i) coutresulti;if(i+1)%5=0)cout ;/每输出5个数就输出一个空格。if(i+1)%50=0)coutendl;/输出达50个数换行。coutendl;delete result;return 0;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号