龙空技术网

颖儿教你编代码《C语言进阶》 大数相乘

颖儿教你编代码 245

前言:

现在姐妹们对“大数乘积”大约比较关切,看官们都需要分析一些“大数乘积”的相关资讯。那么小编也在网摘上汇集了一些有关“大数乘积””的相关资讯,希望各位老铁们能喜欢,我们快快来学习一下吧!

最近的文章已经学习了许多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语言乘法简便表达