高精度乘法
来源:互联网 发布:数据库迁移方案 编辑:程序博客网 时间:2024/04/28 16:17
#include<iostream>
using namespace std;
const int MAX=100;
char s1[MAX];
char s2[MAX]; //字符串数组,接收数据
int a1[MAX];
int a2[MAX]; //转化数组,存储转化后的字符串数组
int a3[MAX]; //积数组
int main()
{
for(int in=0; in < MAX; ++in)
{
a1[in]=0;
a2[in]=0;
a3[in]=0;
} //初始化
cin >>s1>>s2;
int size1;
int size2;
int size;
size1=strlen(s1);
size2=strlen(s2);
size=size1+size2; //确定积数组的大小,其大小为2个字符串长度之和
for(int i=0;i < size1; ++i) //将2字符串转化为整数数组,低位在前
a1[i]=s1[size1-1-i]-'0';
for(int j=0;j < size2; ++j)
a2[j]=s2[size2-1-j]-'0';
int flag=0; //进位标记
for(int d=0;d < size2; ++d) //两层循环处理,将a2的每个数与a1中的数相乘,然后将结果存入积数组,注意进位处理
{
for(int d1=0;d1 < size1; ++d1)
{
int temp=a2[d] * a1[d1];
a3[d1+flag]+=temp%10;
if(a3[d1+flag] >= 10)
{
a3[d1+flag]=a3[d1+flag]%10;
a3[d1+flag+1]++;
}
a3[d1+flag+1]+=temp/10;
if(a3[d1+flag+1] >= 10)
{
a3[d1+flag+1]=a3[d1+flag+1]%10;
a3[d1+flag+2]++;
}
}
++flag;
}
int t=1;
for(int op=0; op < size; ++op)
{
if(t && a3[size-1-op] == 0) //首位为0不打印
continue;
else
t=0;
cout <<a3[size-1-op];
}
return 0;
}
- 高精度乘法
- 高精度乘法
- 高精度乘法
- 高精度乘法
- 高精度乘法
- 高精度乘法
- 高精度乘法
- 高精度乘法
- 高精度乘法
- 高精度乘法
- 高精度乘法
- 高精度乘法
- 高精度乘法
- 高精度乘法
- 高精度乘法
- 高精度乘法
- 高精度乘法
- 高精度乘法
- Packet Tracer V5.1 汉化包
- htmlEscape javascriptEscape
- The entry 'XXX' has already been added
- RTP/RTCP工程实践与问题解决方案 续一(合集)
- NetBeans 配置web.xml描述符
- 高精度乘法
- Windows Server 2003广州虚拟主机网DVD版
- html中post和get区别
- 弹出窗口大全
- 关于CFindReplaceDialog 指针的 释放
- 在PLSQL里的变量名最好不要相同,比如函数的参数和RECORD里面的变量,会报错的
- 元音老人:修行六要点
- SQL学习总结(三)
- MSSQL2000 数据库文件迁移到 MSSQL2005 可能要用的一些命令