《整数高精除法通信电子EV技术_通信电子-电信技术.pdf》由会员分享,可在线阅读,更多相关《整数高精除法通信电子EV技术_通信电子-电信技术.pdf(7页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、整数高精度除法#include#include#define N 1001 int compare(char*c1,int s1,int e1,char*c2,int s2,int e2)/*大整数比较大小*/while(c1s1=0&s1e1)s1+;while(c2s2=0&s2e2-s2)return 1;if(e1-s1e2-s2)return-1;int i1;int f11=0;for(i1=0;i1c2s2+i1)f11=1;break;if(c2s2+i1c1s1+i1)break;if(i1e1-s1)return 0;if(f11)return 1;return-1;voi
2、d sub(char*c1,int l1,char*c2,int n,int l)/*两个大整数相减*/int fig=0;if(l1l)fig=1;int i5;for(i5=l;i50;i5-)c2i5=c2i5-1;c20=0;l+;int jw=0;int i4;char tcN;for(i4=l-1;i4=0;i4-)tci4=(c2i4-48)*n+jw)%10+48;jw=(c2i4-48)*n+jw)/10;jw=0;for(i4=l-1;i4=0;i4-)int ttt=jw;if(c1i4-tci4-jw=0)tci4=c1i4-tci4-jw+48;结果放在中余数放在中j
3、w=0;else jw=(tci4-c1i4+jw)/10+1;tci4=jw*10+c1i4-tci4-ttt+48;if(fig)for(i4=0;i4l-1;i4+)c2i4=c2i4+1;l-;tcl1=0;for(i4=0;i4=l1;i4+)c1i4=tci4;void high_precise_division(char*c1,char*c2)int len1,len2;len1=strlen(c1);len2=strlen(c2);int i,j,k,ip;while(c10=0&ilen1-1)结果放在中余数放在中 for(k=0;klen1-1;k+)c1k=c1k+1;l
4、en1-;/*去掉前面的 0*/while(c20=0&jlen2-1)for(k=0;klen2-1;k+)c2k=c2k+1;len2-;/*去掉前面的 0*/c1len1=0;c2len2=0;if(len1len2|len1=len2&compare(c1,0,len1-1,c2,0,len2-1)0)strcpy(c2,c1);c10=0;c11=0;return;else ip=0;char productN,*pr;/*部分积*/pr=product;结果放在中余数放在中for(ip=0;iplen2-1;ip+)prip=c1ip;for(i=0;i=len2&compare(
5、pr,0,ip-1,c2,0,len2-1)=0)char tcN;for(j=1;j=9;j+)for(k=0;kip;k+)tck=prk;sub(tc,ip,c2,j,len2);/*pr-c2*j结果放在 pr 中*/for(k=0;tck!=0;k+);if(compare(tc,0,k-1,c2,0,len2-1)1)for(j=0;jip-1;j+)prj=prj+1;ip-;结果放在中余数放在中 ;if(ip=1&pr0=0)ip-else c1i=0;while(c10=0)for(j=0;ji-1;j+)c1j=c1j+1;i-;c1i=0;if(ip=0)pr0=0;pr
6、1=0;ip=1;else while(pr0=0)for(j=0;jip-1;j+)prj=prj+1;ip-;for(j=0;jip;j+)c2j=prj;c2ip=0;结果放在中余数放在中return;int main()int i,j;char c1N,c2N;/*整数高精度除法*/while(scanf(%s%s,c1,c2)!=EOF)char*pc1,*pc2;pc1=c1;pc2=c2;c1strlen(c1)=0;c2strlen(c2)=0;high_precise_division(pc1,pc2);printf(商:%sn 余数:%sn,pc1,pc2);/*结果放在 pC1中,余数放在 pC2中*/return 0;结果放在中余数放在中