一,题意:
  大整数乘法模板题
二,思路:
  1,模拟乘法(注意"逢十进一")
  2,倒序输出(注意首位0不输出)
三,步骤:
  如:555 x 35 = 19425 
     5 5 5        5 5 5
     x   3 5        x    3 5
    -----------   ==>     ----------
      2 7 7 5       25 25 25
     + 1 6 6 5        +15 15 15
  -------------      -----------------
      1 9 4 2 5     15 40 40 25
            逢十进一
            ---------------
            1   9   4   2   5

 #include<iostream>
#include<cstring>
using namespace std;
const int N = ;
char a[N],b[N];
int ans[N]; //记录结果的数组
int digit; //记录结果的位数 //模拟乘法的过程
void MUL(int len , int len2){
int l = ;
for(int i = len2 - ; i >= ; i--){
int k = l ;
int m = l ;
for(int j = len - ; j >= ; j--){
ans[k++] = (b[i]-'')*(a[j]-'') + ans[m++]; //储存的时候为倒序
}
l++; //乘完一位,往后移一位相加
digit=k; //记录位数
}
//进行"逢十进一"操作
for(int i = ; i<=digit ; i++){
if(ans[i]>=){
ans[i+] = ans[i+] + ans[i] / ;
ans[i] %= ;
}
}
} //输出操作
void print(){
if(ans[digit]!=) //判断首位是否为0
cout<<ans[digit];
for(int i = digit- ; i>= ; i-- ){ //倒序输出
cout<<ans[i];
}
cout<<endl;
} int main(){
while(cin>>a>>b){
int len = strlen(a);
int len2 = strlen(b);
memset(ans,,sizeof(ans));//初始化ans[]为0
MUL(len,len2);
print();
}
return ;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

poj2389-Bull Math(大整数乘法)的更多相关文章

  1. POJ2389 Bull Math【大数】

    Bull Math Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 15040   Accepted: 7737 Descri ...

  2. 【老鸟学算法】大整数乘法——算法思想及java实现

    算法课有这么一节,专门介绍分治法的,上机实验课就是要代码实现大整数乘法.想当年比较混,没做出来,颇感遗憾,今天就把这债还了吧! 大整数乘法,就是乘法的两个乘数比较大,最后结果超过了整型甚至长整型的最大 ...

  3. POJ2389 Bull Math

    /* POJ2389 Bull Math http://poj.org/problem?id=2389 高精度乘法 * */ #include <cstring> #include < ...

  4. POJ 1001 解题报告 高精度大整数乘法模版

    题目是POJ1001 Exponentiation  虽然是小数的幂 最终还是转化为大整数的乘法 这道题要考虑的边界情况比较多 做这道题的时候,我分析了 网上的两个解题报告,发现都有错误,说明OJ对于 ...

  5. OpenJudge 2980 大整数乘法

    链接地址:http://bailian.openjudge.cn/practice/2980/ 题目: 总时间限制: 1000ms 内存限制: 65536kB 描述 求两个不超过200位的非负整数的积 ...

  6. 大整数乘法python3实现

    因为python具有无限精度的int类型,所以用python实现大整数乘法是没意义的,可是思想是一样的.利用的规律是:第一个数的第i位和第二个数大第j位相乘,一定累加到结果的第i+j位上,这里是从0位 ...

  7. [大整数乘法] java代码实现

    上一篇写的“[大整数乘法]分治算法的时间复杂度研究”,这一篇是基于上一篇思想的代码实现,以下是该文章的连接: http://www.cnblogs.com/McQueen1987/p/3348426. ...

  8. JS实现大整数乘法(性能优化、正负整数)

    本方法的思路为: 一:检查了输入的合法性(非空,无非法字符) 二:检查输入是否可以进行简单计算(一个数为 0,1,+1,-1) 三:去掉输入最前面可能有的正负符号,并判断输出的正负 四:将输入的值分成 ...

  9. 算法笔记_034:大整数乘法(Java)

    目录 1 问题描述 2 解决方案 2.1 蛮力法   1 问题描述 计算两个大整数相乘的结果. 2 解决方案 2.1 蛮力法 package com.liuzhen.chapter5; import ...

随机推荐

  1. 如何查看、修改Linux的系统时间

    如题: 如何修改Linux的系统时间? date -s 05/27/2011 date -s 10:24:00 clock -w 就这三条命令就OK了! 查看/修改Linux时区和时间 一.时区 1. ...

  2. CDN的特点

    CDN的特点 1.本地Cache加速提高了企业站点(尤其含有大量图片和静态页面站点)的访问速度,并大大提高以上性质站点的稳定性(省钱,用户体验提升). 2.镜像服务消除了不同运营商之间的瓶颈造成的影响 ...

  3. liunx学习(一):linux下目录操作大全

    Linux C函数之文件及目录函数(全):http://blog.sina.com.cn/s/blog_695e489c01013ldd.html linux目录操作发:http://www.cnbl ...

  4. imageNamed和imageWithContentsOfFile区别

    在 Apple 官方帮助文档提供了两个加载图片的方法 imageNamed , 其参数为图片的名字 imageWithContentsOfFile , 其参数是图片文件的路径 下面主要是说一下他们的区 ...

  5. ASP.NET知识总结(6.一般处理程序动态处理图片(验证码、水印、缩略图))

    ->使用GDI+完成图片的处理,需要引入程序集System.Drawing ->GDI+的基本处理模型 <1>创建画布Bitmap <2>创建画图工具对象Graph ...

  6. 【Java EE 学习 43】【SVN版本控制工具】【CVS版本控制工具】

    一.SVN SVN服务器下载地址:https://subversion.apache.org/ 1.什么是版本控制:版本控制是维护工程蓝图的标准做法,能追踪工程蓝图从诞生一直到定案的过程.是一种记录若 ...

  7. js中时间戳转化成时间格式

    function formatDate(timestamp){ var test = new Date(parseInt(timestamp) * 1000); var $year = test.ge ...

  8. 无法从“char*转换为“LPCWSTR”

    解决办法: 第一种方法:工程属性->配置属性->右边 项目默认值->字符集 改为未设置 第二种:一般直接加个L在前面,当是字符串常量的时候可以这样,也可以_T(x)等   来自:软件 ...

  9. Linux 第04天

    Linux 第04天 1.系统设置工具(网络和打印机)和硬件检测 1.1 setup工具 1.1.1 用户身份验证设置 1.1.2 网络配置 1.1.3 防火墙设置 1.1.4 键盘形式设置 1.1. ...

  10. Spring-配置bean的方法(工厂方法和Factorybean)【转】

    通过工厂方法配置bean 通过调用静态工厂方法创建bean 通过静态工厂方法创建bean是将对象创建的过程封装到静态方法中.当客户端需要对象时,只需要简单地调用静态方法,而不关心创建对象的细节. 要声 ...