📄 multiply.cpp
字号:
#include <iostream.h>
#include <math.h>
#include <string.h>
#include <stdio.h>
void multiply(char numa[],char numb[])
{
int along=strlen(numa);
int blong=strlen(numb);
char result[40000];
char temp[20000];
int k=0;
for(k=0;k<40000;k++) //结果字符串付初值
result[k]=48;
int temp_result;
int carry=0;
int tempblong=blong;
int i=0;
int j=0;
while(along)
{
while(blong)
{
temp_result=(numa[along-1]-48)*(numb[blong-1]-48)+carry+(result[40000-i-j-1]-48);
result[40000-i-j-1]=temp_result%10+48;
carry=temp_result/10;
// cout<<temp_result<<endl<<result[40000-i-j-1]<<endl;
// cout<<carry<<endl;
blong--;
j++;
if(j==tempblong)
result[40000-j-i-1]+=carry; //??????????
}
blong=tempblong; //b字符串复位
carry=0;
j=0; //j复位
along--;
i++;
}
// cout<<abigerb(numa,numb)<<endl; //检测程序运行情况所用
i=0; //消除无价值的零
int count=0; //计数,结果中无价值零的个数
while(result[i]=='0')
{
count++;
i++;
}
if(count==40000) cout<<'0'; //结果为零的处理
else for(i=count;i<40000;i++)
cout<<result[count++];
}
void main()
{
char numa[20000],numb[20000];
char yunsuanfu;
cout<<endl<<"please write in A:";
cin>>numa;
cout<<endl<<"please write in B:";
cin>>numb;
cout<<endl<<"please write in yunsuanfu:";
cin>>yunsuanfu;
switch(yunsuanfu)
{
case '*': multiply(numa,numb); break;
default: break;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -