前言:
现在姐妹们对“大数乘积”大约比较关切,看官们都需要分析一些“大数乘积”的相关资讯。那么小编也在网摘上汇集了一些有关“大数乘积””的相关资讯,希望各位老铁们能喜欢,我们快快来学习一下吧!最近的文章已经学习了许多C语言的基础知识,大家一定要巩固学习,以及一些简单算法
今天讲解的是C语言的大数相乘问题:
举个例子:
123456788943524*243252432236=???
和我前一篇文章有点相关,前一篇是大数相加,这次请大家思考这个算法的实现:
代码附上(思考动手后再看):
#include<iostream>#include<cstring>#include<stdio.h>using namespace std;int main(){ char num1[1500]; char num2[1500]; cin>>num1>>num2; int n = strlen(num1); int m = strlen(num2); int c[3000]={0}; int a[1500]; int b[1500]; int z = 0; for(int i = n-1,j = 0;i>=0;i--,j++) { a[j]=num1[i]-'0'; } for(int i = m-1,j=0;i>=0;i--,j++) { b[j]=num2[i]-'0'; } for(int i = 0;i<m;i++) { for(int j = 0;j<n;j++) { c[i+j]+=b[i]*a[j]; } } for(int i = 0;i<n+m;i++) { if(c[i]>=10) { c[i+1]+=c[i]/10; c[i]%=10; } } for(z = 2999;z>=0;z--) { if(c[z]!=0) { break; } } for(int i = z;i>=0;i--) { cout<<c[i]; } cout<<endl;}
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #大数乘积 #大数相乘算法 #大数相加算法伪代码 #如何用c语言计算乘法 #c语言乘法简便表达