大家好,欢迎来到IT知识分享网。
代码
#include<iostream> #include<string> #include<algorithm> using namespace std; const int N=1e6; int a[N],b[N],ans[N]; string s1,s2; int main() { cin>>s1>>s2; int len1=s1.length(); int len2=s2.length(); for(int i=1;i<=len1;i++) a[i]=s1[len1-i]-'0'; //反序存储 for(int i=1;i<=len2;i++) b[i]=s2[len2-i]-'0'; int k,tmp; for(int i=1;i<=len2;i++) { k=i; //错位 tmp=0; //记录进位 for(int j=1;j<=len1;j++) { ans[k]+=b[i]*a[j]+tmp; //将之前此外的数和此次相乘的结果和进位相加 tmp=ans[k]/10; //除10是下一次的进位 整除 ans[k]=ans[k]%10; //模10本位 k++; } ans[k]=tmp; //最后可能都乘完,还剩下进位 } int i; for(i=k;i>1;i--) if(ans[i]!=0) //除0 break; for(;i;i--) //反序输出 cout<<ans[i]; return 0; }
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/183112.html