大数乘法的简单实现
来源:互联网 发布:阳春政府网络问政 编辑:程序博客网 时间:2024/05/17 09:21
输入两个数(大数),计算成绩结果。
#include <iostream>#include <string>using namespace std;const int MaxSize=3000;//模拟手算,大数. 2014-1-20 int data[MaxSize+5];int *aArray,*bArray;int aSize,bSize;void gsh(int i){//从i到j个位置格式化int k;for(k=i;k<=aSize+bSize+1;k++){if(data[k]>9){data[k+1]+=data[k]/10;data[k]%=10;}}}void fun(){int relust,i,j;for(i=1;i<=bSize;i++){for(j=1;j<=aSize;j++){relust=bArray[i]*aArray[j];data[i+j-1]+=relust;gsh(i);//从i进位,全部是否进位格式化}}relust=0;for(i=bSize+aSize+1;i>=1;i--)if(data[i])break;for(;i>=1;i--)cout<<data[i];cout<<endl;}int main(){int i,j;string a,b;cin>>a>>b;//输入的数字保存在string中aArray=new int[a.length()+3];bArray=new int[b.length()+3];//将数字保存在int数组中memset(aArray,0,sizeof(aArray));memset(bArray,0,sizeof(bArray));for(i=a.length(),j=1;i>=0;i--)if(a[i]>='0'&&a[i]<='9')aArray[j++]=a[i]-'0';aSize=j-1;for(i=b.length(),j=1;i>=0;i--)if(b[i]>='0'&&b[i]<='9')bArray[j++]=b[i]-'0';bSize=j-1;for(i=0;i<=MaxSize;i++)data[i]=0;fun();//for(i=aSize;i>0;i--)//cout<<aArray[i]; //test//cout<<endl<<endl;//for(i=bSize;i>0;i--)//cout<<bArray[i];return 0;}
0 0
- 大数乘法的简单实现
- 大数乘法的实现
- 大数乘法的实现
- 大数乘法的实现
- 大数加法和大数乘法的实现
- C++实现大数的乘法
- java实现大数的乘法:
- 自己实现的大数乘法
- 一个简单的大数乘法算法
- 大数的c++实现,包括加减乘法
- LeetCode-Multiply Strings实现大数的乘法
- 大数的加法,乘法,全排列实现
- 大数乘法的分治策略C++实现
- 大数乘法、大数加法实现
- 大数乘法实现代码
- 大数乘法C++实现
- 大数乘法运算实现
- 大数乘法C实现
- Exception starting filter struts2 java.lang.NoClassDefFoundError: org/objectweb/asm/ClassVisitor
- java多线程实现实例
- 鲁迅生平及其作品简介
- Linux中find常见用法示例
- 快乐就是代码跟得上你的节奏
- 大数乘法的简单实现
- Binary Tree Maximum Path Sum
- 第一篇博客
- Nandflash的驱动加载
- drupal 中解除5次登录错误后,帐号阻止
- 1、关于设计模式
- 查字典问题
- thinkphp导出xsl文件
- HBuilder:最快的Web开发IDE