博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
大数相乘
阅读量:5317 次
发布时间:2019-06-14

本文共 1545 字,大约阅读时间需要 5 分钟。

#include
#include
using namespace std;class BigNumberMutiplication{private: char *num1; char *num2; char *result; int lenNum1; int lenNum2; void reverseNumerbs(); void reverseNumber(char *s);public: BigNumberMutiplication(char *num1,char *num2); char *Mutiplicate(); void Test();};BigNumberMutiplication::BigNumberMutiplication(char *num1,char *num2){ this->num1=num1; this->num2=num2; this->lenNum1=strlen(num1); this->lenNum2=strlen(num2); int len=this->lenNum1+this->lenNum2+1; result=new char[len]; memset(result,'0',len*sizeof(char)); result[len-1]='\0';}void BigNumberMutiplication::reverseNumber(char *s){ int len=strlen(s); int i=0; while(i
num1); reverseNumber(this->num2);}void BigNumberMutiplication::Test(){ cout<
num1<
<
num2<
reverseNumerbs(); cout<
num1<
<
num2<
reverseNumerbs(); int i=0; int j=0; for(i=0;i
lenNum1;i++) { int incrs=0; int addIncrs=0; for(j=0;j
lenNum2;j++) { int multiTmp=(this->num1[i]-48)*(this->num2[j]-48)+incrs; incrs=multiTmp/10; int rest=multiTmp%10; int addTmp=(this->result[i+j]-48)+rest+addIncrs; addIncrs=addTmp/10; this->result[i+j]=addTmp%10+48; } this->result[i+j]+=addIncrs+incrs; } this->reverseNumber(this->result); return this->result;}int main(){ char a[]="12345678909876543210"; char b[]="12345678909876543210"; cout<
<
<
<
Mutiplicate(); cout<
<
>s;}

 

转载于:https://www.cnblogs.com/lxdonge/p/6094251.html

你可能感兴趣的文章
Python 发 邮件
查看>>
mysql忘记密码的解决办法
查看>>
全面分析Java的垃圾回收机制2
查看>>
[Code Festival 2017 qual A] C: Palindromic Matrix
查看>>
修改博客园css样式
查看>>
Python3 高阶函数
查看>>
初始面向对象
查看>>
leetcode Letter Combinations of a Phone Number
查看>>
Unity 5.4 测试版本新特性---因吹丝停
查看>>
7.5 文件操作
查看>>
MyEclipse中将普通Java项目convert(转化)为Maven项目
查看>>
node js 安装.node-gyp/8.9.4 权限 无法访问
查看>>
windows基本命令
查看>>
VMware中CentOS设置静态IP
查看>>
[poj1006]Biorhythms
查看>>
Hyper-V虚拟机上安装一个图形界面的Linux系统
查看>>
Hover功能
查看>>
js千分位处理
查看>>
Mac---------三指拖移
查看>>
字符串类型的相互转换
查看>>