部分高精度算法c语言

部分高精度算法c语言

ID:41056382

大小:53.50 KB

页数:5页

时间:2019-08-15

部分高精度算法c语言_第1页
部分高精度算法c语言_第2页
部分高精度算法c语言_第3页
部分高精度算法c语言_第4页
部分高精度算法c语言_第5页
资源描述:

《部分高精度算法c语言》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、部分高精度算法②高精度除以低精度;算法:按照从高位到低位的顺序,逐位相除。在除到第j位时,该位在接受了来自第j+1位的余数后与除数相除,如果最高位为零,则商的长度减一。源程序如下:#include #define  N 500main(){ int a[N]={0},c[N]={0}; int i,k,d,b; char a1[N];  printf("Input除数:"); scanf("%d",&b); printf("Input被除数:"); scanf("%s",a1); k=strlen(a1

2、); for(i=0;i=0;i--) {    d=d*10+a[i];    c[i]=d/b;    d=d%b;      }   while(c[k-1]==0&&k>1) k--;  printf("商="); for(i=k-1;i>=0;i--) printf("%d",c[i]); printf("余数=%d",d);   }    ③高精度乘以高精度(要求用尽可能少的存储单元);算法:用数组保存两个高精度数,

3、然后逐位相乘,注意考虑进位和总位数。源程序如下:#include main(){ int a[240]={0},b[240]={0},c[480]={0}; int i,j,ka,kb,k; char a1[240],b1[240]; gets(a1);    ka=strlen(a1); gets(b1);    kb=strlen(b1); k=ka+kb; for(i=0;i

4、]-'0'; for(i=0;i=0;i--) printf("%d",c[i]);       }    ④高精度除以高精度(要求用尽可能少的存储单元);算法:用计算机模拟手算除法,把除法试商转化为连减。#include 

5、dio.h>#define  N 500int bj(inta[],intb[],intk1,intk2)  /*比较大小函数*/{  inti,t,flag;      /*flag作标志位*/  if(k1k2)          flag=1;     /*被除数大于除数返回1*/       else         {             /*被除数和除数位数相等则逐位进行比较*/           i

6、=k1;           t=0;           while(t==0&&i>0)           {             if(a[i]>b[i]){t=1;flag=1;}             elseif(a[i]==b[i]) i--;             else {t=1;flag=0;}                  }           if(i==0&&t==0) flag=2;    /*被除数等于除数返回2*/         } returnflag;       

7、   }int jf(inta[],intb[],intk1,intk2)      /*减法运算*/{ int i,k,d[N]; for(i=0;i0) {   for(i=k2-1;i>=0;i--) d[

8、i+k]=d[i]; /*移动减数位数与被减数对齐*/   for(i=0;i=d[i]) a[i]-=d[i];   else   {     a[i+1]=a[i+1]

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

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

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