多小数位高精度算法.docx

多小数位高精度算法.docx

ID:59210604

大小:12.44 KB

页数:5页

时间:2020-09-10

多小数位高精度算法.docx_第1页
多小数位高精度算法.docx_第2页
多小数位高精度算法.docx_第3页
多小数位高精度算法.docx_第4页
多小数位高精度算法.docx_第5页
资源描述:

《多小数位高精度算法.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、两个数相乘,小数点后位数没有限制,请写一个高精度算法记录下用于大数操作的思想:字符串!!算法提示:         输入stringa,stringb;计算stringc=a*b;返回c;1,   纪录小数点在a,b中的位置l1,l2,则需要小数点后移动位置数为l=length(a)+length(b)-l1-l2-2;2,   去掉a,b中的小数点,(a,b小数点后移,使a,b变为整数)3,   计算c=a*b;(同整数的大数相乘算法)4,   输出c,(注意在输出倒数第l个数时,输出一个小数点。若是输出的数少于l个,就补0)变为整数求就行了.输入的时候记一下,小数点位置..输出再做点文章

2、就行了.下面的是大整数的运算.#includeusingnamespacestd;#defineMAX10000structNode{  intdata;  Node*next;};voidoutput(Node*head){  if(!head->next&&!head->data)return;  output(head->next);  cout<data;}voidMul(char*a,char*b,intpos)        {  char*ap=a,*bp=b;  Node*head=0;  head=newNode;head->data=0,

3、head->next=0;  //头  Node*p,*q=head,*p1;  inttemp=0,temp1,bbit;  while(*bp)               //若乘数不为空,继续.  {      p=q->next;p1=q;      bbit=*bp-48;         //把当前位转为整型      while(*ap

4、

5、temp)           //若被乘数不空,继续      {          if(!p)           //若要操作的结点为空,申请之          {              p=newNode;         

6、     p->data=0;              p->next=0;              p1->next=p;          }          if(*ap==0)temp1=temp;          else{temp1=(p1->data)+(*ap-48)*bbit+temp;ap++;}          p1->data=temp1%10;   //留当前位          temp=temp1/10;   //进位以int的形式留下.          p1=p;p=p->next;                //被乘数到下一位      } 

7、     ap=a;bp++;q=q->next;               //q进下一位  }  p=head;  output(p);                  //显示  cout<next;          deletehead;          head=p;  }}intmain(){  cout<<"请输入两个数"<

8、;  cin.getline(test2,MAX,'');  Mul(strrev(test1),strrev(test2));  system("PAUSE");  return0;}上面大整数已经写了.你加几个东西就行了.#includeusingnamespacestd;#defineMAX10000structNode{  intdata;  Node*next;};voidoutput(Node*head,intpos){  if(!head->next&&!head->data)return;  output(head->next,pos-1);  cou

9、t<data;  if(!pos)cout<<".";}voidMul(char*a,char*b,intpos)        {  char*ap=a,*bp=b;  Node*head=0;  head=newNode;head->data=0,head->next=0;  //头  Node*p,*q=head,*p1;  inttemp=0,temp1,bbit;  while(*bp

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。