大数:即超过了计算机定义类型的范围的数,如126349678984*1321656546446546546546,这种运算的结果

太大,超过了基本类型的范围,发生溢出,这样我们就需要运用大数的算法来解决这个问题了。

大数乘法:

/**    大数乘法*/
#include <iostream>
#include <string.h>
using namespace std;void big_multiply(const char *a,const char *b)
{int sizea,sizeb;sizea=strlen(a);sizeb=strlen(b);int *result=(int *)malloc(sizeof(int)*(sizea+sizeb));for(int i=0;i<sizea+sizeb;i++)result[i]=0;for(int i=0;i<sizea;i++)for(int j=0;j<sizeb;j++){result[i+j+1]+=(a[i]-'0')*(b[j]-'0');//空一位出来为后面的进位提供空间}for(int i=sizea+sizeb-1;i>=0;i--)//这里需要对result数组进行倒序的处理{if(result[i]>9){result[i-1]+=result[i]/10;//先把该进位的提出result[i]=result[i]%10;//得到余数}}int i=0;while(result[i]==0) i++;//当前面有为0的位时就计数,得到前面0的个数,后面就从第一个不是0的位输出for(int j=i;j<sizea+sizeb;j++)cout<<result[j];
}int main()
{string a,b;cout<<"超大数运算"<<endl<<"请输入两个大数:";cin>>a>>b;const char* p1=a.c_str();//格式转换const char* p2=b.c_str();big_multiply(p1,p2);return 0;
}

大数的基本运算——大数乘法相关推荐

  1. c语言大数阶乘详细,大数阶乘(c语言)

    大数阶乘.代码比较简单. #include #include #define MAXN 25000 // 如果你的阶乘N比较大,建议大一点 int result[MAXN]; int main() { ...

  2. 大数算法之大数加减法

    大数算法之大数加减法 当我们第一次编程,成功地在黑洞洞的控制台窗口中打印出"Hello World"的字符后,准备编写的第一个有实用性的程序是什么?我想,对于大多数人而言,这一问题 ...

  3. 大数问题:大数加法 与 大数乘法 最简单大数乘法

    大数加法很简单,大叔乘法只是以大数加法为基础的,光从难度来说,两者差不多. 思路:这里没有借鉴别人牛逼的算法,现在也没有这个需求,就用最通俗的思路自己想了一个. 先举一个简单的例子 所以乘法就是每一位 ...

  4. 大数高精运算-----乘法

    C++培训教材 高精乘法 ----------------------------------------------------------------------- 先写个两个数的乘积 有空改成个 ...

  5. kuangbin大数模板(加法和乘法)

    之前的模板因为用了string类,以及运算的时候常数太大,导致速度太慢,虽然比较方便但不算很通用,所以存一波kuangbin大大的模板 /** 高精度,支持乘法和加法*/ struct BigInt ...

  6. 大数运算(4)——大数乘法

    首先说一下乘法计算的算法:同样是模拟人工计算时的方法. 从低位向高位乘,在竖式计算中,我们是将乘数第一位与被乘数的每一位相乘,记录结果之后,用第二位相乘,记录结果并且左移一位,以此类推,直到计算完最后 ...

  7. 大数相乘、大数相加、大数相减Java版本

    为什么80%的码农都做不了架构师?>>>    题目:两个非常大的数字相乘(相加,相减) 该题目在java中可以使用BigInteger类中的方法来实现.否则的话可以使用如下方式来实 ...

  8. 大数运算(8)——大数幂运算

    大数幂运算的实现有了前面的大数乘法算法做铺垫,就是调用乘法函数,来循环去自乘,幂指数相应减1,直到幂指数变为0时结束. 下面是C语言代码实现: #include<stdio.h> #inc ...

  9. 51NOD-1005 大数加法【大数】

    1005 大数加法  基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 给出2个大整数A,B,计算A+B的结果. Input 第1行:大数A 第2行:大数B (A,B的长度 ...

最新文章

  1. 计算机用户账户添加,windows添加用户账户
  2. 哪个是更早的时间 date_淘宝用户行为分析(漏斗模型+pv,uv,pv/uv,复购率,用户活跃时间段)...
  3. TTL and CMOS 的几个基本功能模块
  4. ubuntu环境搭建六:安装chrome浏览器
  5. 图像放缩中最近邻插值和双线性插值的基本原理
  6. ConcurrentLinkedQueue since java1.5
  7. SQL语句编写经典50题
  8. 史上最好的Markdown编辑器
  9. CSS中 px、em、rem区别
  10. windows下使用命令行运行PHP
  11. java 安全警告 关闭_关闭安全警告的两种方法
  12. 【数据挖掘】之 数据挖掘 绪论
  13. mysql数据库data目录下文件说明
  14. 荣耀20android版本10什么意思,手机 篇一:荣耀10的老用户要不要换荣耀20Pro
  15. 养生分享:九大神奇降压食物
  16. c语言分数乘法用指针,分数乘法练习题全套(整理打印版)
  17. windbg 脚本命令
  18. 又拍云常见使用问题(Discuz程序如何使用又拍云存储)
  19. siesta在Linux运行,[求助]Linux下安装Siesta的方法 - 计算模拟 - 小木虫 - 学术 科研 互动社区...
  20. 解决直接打开Excel2003 启动慢

热门文章

  1. 刚创建的springboot项目启动后访问controll报404
  2. 站外营销经典方式之论坛发帖技巧
  3. 托福 103,GRE 158+167+3.5
  4. 心跳丢失造成RAC节点驱逐
  5. vivado 亚稳态_【DNN Weaver FPGA实现】Vivado BRAM资源使用
  6. 两步完成javaWEB项目连接云端数据库
  7. gprs模块与服务器通信协议,什么是DTU模块和GPRS模块?它们有什么关系?
  8. Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 's
  9. SPOJ 7258 SUBLEX 后缀自动机
  10. 鸿蒙密室逃脱思考的囚徒,“囚徒困境”的思考