大数相乘 +方法2(C语言)
发布时间:2020-12-14 04:09:20 所属栏目:大数据 来源:网络整理
导读:#includestdlib.h #includestdio.h #includestring.h void main() { int i,j,len=0,k,pos=-1; char a[100],b[100],c[200],d[1000]; gets(a); gets(b); strrev(a);strrev(b); memset(d,'0',sizeof(d)); for(i=0;b[i]!=' ';i++) { int num=0; for(j=0;a[j]!='
#include<stdlib.h> #include<stdio.h> #include<string.h> void main() { int i,j,len=0,k,pos=-1; char a[100],b[100],c[200],d[1000]; gets(a); gets(b); strrev(a);strrev(b); memset(d,'0',sizeof(d)); for(i=0;b[i]!=' ';i++) { int num=0; for(j=0;a[j]!=' ';j++) ? ?//处理进位 { if(j<=pos) num +=(b[i]-'0')*(a[j]-'0')+(d[j]-'0'); else num +=(b[i]-'0')*(a[j]-'0'); d[j] = num%10 +'0'; num /=10; } c[len++]=d[0]; ? ?//保存最地位值 for(k=1;k<j;k++) ? //a[0] 后面的字符都往前面移动一位 d[k-1] = d[k];? if(num != 0) ? //最高位有进位 { d[--k] = num+'0'; ? pos = k-1; } else ?{ d[--k] =' '; pos = k-1;} } c[len] =' '; ? ?//给c数组结束标志 strrev(c); strrev(d); ? ? ? //给a里面反序,就是将高位换到前面 低位在后面 strcat(d,c); puts(d); }*/(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |