suseoj 1207: 大整数的乘法(java, 大数相乘, C/C++, 大数相乘)
1207: 大整数的乘法
时间限制: 1 Sec 内存限制: 128 MB
提交: 7 解决: 2
[提交][状态][讨论版][命题人:liyuansong]
题目描述
输入
输出
样例输入
12345678900
98765432100
样例输出
1219326311126352690000 分析(Java):
使用Java的BigInteger类来解决 核心代码:
a = sc.nextBigInteger();
b = sc.nextBigInteger();
System.out.println(a.nultiplt(b));
Java代码实现(AC):
import java.math.BigInteger;
import java.util.Scanner; public class Main{
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
BigInteger a, b;
a = sc.nextBigInteger();
b = sc.nextBigInteger();
System.out.println(a.multiply(b));
}
}
分析(C/C++):
Ⅰ、用C/C++进行乘法运算,就是模拟乘法运算的整个过程;
Ⅱ、要注意两点:
①、进位的处理
②、每一层运算要做到最低位的对齐原则 步骤:
①、将字符串的输入转化为对应的整型数组
②、遍历一个整型数组的每一个数与另一个整型数组所有的数相乘
③、PS,注意:进位、对齐 核心代码:
for(int i = 0; i < len1; ++ i)
{
int b = 0;
for(int j = 0; j < len2 || b; ++ j)
{
int t = i1[i]*i2[j] + ans[i+j] + b;
ans[i+j] = t%10;
b = t/10;
len = max(len, i+j); // len保存最终位数
}
}
C/C++代码实现(AC):
#include <iostream>
#include <algorithm>
#include <cstring>
#include <cstdio>
#include <cmath>
#include <stack>
#include <map>
#include <queue> using namespace std; int main()
{
char s1[205], s2[205];
int len1, len2;
scanf("%s%s", s1, s2);
len1 = strlen(s1), len2 = strlen(s2); int i1[205] = {0}, i2[205] = {0}, ans[1000] = {0}, len = 0;
for(int i = 0; i < len1; ++ i)
i1[i] = s1[len1 - 1 - i] - '0';
for(int i = 0; i < len2; ++ i)
i2[i] = s2[len2 - 1 - i] - '0'; for(int i = 0; i < len1; ++ i)
{
int b = 0;
for(int j = 0; j < len2 || b; ++ j)
{
int t = ans[i + j] + i1[i]*i2[j] + b;
ans[i + j] = t%10;
b = t/10;
len = max(len, j + i);
}
}
for(int i = len; i >= 0; -- i)
printf("%d", ans[i]);
printf("\n");
return 0;
}
suseoj 1207: 大整数的乘法(java, 大数相乘, C/C++, 大数相乘)的更多相关文章
- Code Kata:大整数四则运算—乘法 javascript实现
上周练习了加减法,今天练习大整数的乘法运算. 采取的方式同样为竖式计算,每一位相乘后相加. 乘法函数: 异符号相乘时结果为负数,0乘任何数都为0 需要调用加法函数 因为输入输出的为字符串,需要去除字符 ...
- 剑指offer第12题打印从1到n位数以及大整数加法乘法
字符和数字加减就是字符的ASCII码和数字直接加减. 方法一: 1)在字符串操作中给一个整形数字加(字符0)就是把它转化为字符,当然给一个字符减去(字符0)就可以把它转化为数字了:如果确实是最后 ...
- POJ 1001 解题报告 高精度大整数乘法模版
题目是POJ1001 Exponentiation 虽然是小数的幂 最终还是转化为大整数的乘法 这道题要考虑的边界情况比较多 做这道题的时候,我分析了 网上的两个解题报告,发现都有错误,说明OJ对于 ...
- 大整数加减运算的C语言实现
目录 大整数加减运算的C语言实现 一. 问题提出 二. 代码实现 三. 效果验证 大整数加减运算的C语言实现 标签: 大整数加减 C 一. 问题提出 培训老师给出一个题目:用C语言实现一个大整数计算器 ...
- 【老鸟学算法】大整数乘法——算法思想及java实现
算法课有这么一节,专门介绍分治法的,上机实验课就是要代码实现大整数乘法.想当年比较混,没做出来,颇感遗憾,今天就把这债还了吧! 大整数乘法,就是乘法的两个乘数比较大,最后结果超过了整型甚至长整型的最大 ...
- [大整数乘法] java代码实现
上一篇写的“[大整数乘法]分治算法的时间复杂度研究”,这一篇是基于上一篇思想的代码实现,以下是该文章的连接: http://www.cnblogs.com/McQueen1987/p/3348426. ...
- 基于Java的大整数运算的实现(加法,减法,乘法)学习笔记
大整数,顾名思义就是特别大的整数. 一台64位的机器最大能表示的数字是2的64次方减一: 18446744073709551615 java语言中所能表示的整数(int)最小为-2147483648 ...
- 算法笔记_034:大整数乘法(Java)
目录 1 问题描述 2 解决方案 2.1 蛮力法 1 问题描述 计算两个大整数相乘的结果. 2 解决方案 2.1 蛮力法 package com.liuzhen.chapter5; import ...
- Java实现大整数乘法
1 问题描述 计算两个大整数相乘的结果. 2 解决方案 2.1 蛮力法 package com.liuzhen.chapter5; import java.math.BigInteger; publi ...
随机推荐
- JavaScript如何工作:垃圾回收机制 + 常见的4种内存泄漏
原文地址: How JavaScript works: memory management + how to handle 4 common memory leaks 本文永久链接:https://d ...
- 触摸屏键盘插件Virtual Keyboard 该怎么用 Virtual Keyboard 入门指南
最近公司有个项目,这个项目的显示器是触摸屏, 所以在一些需要简单输入的input需要加一个触摸屏的软键盘, 我在github上找了很多开源项目,最后选择了Virtual Keyboard, 以下是我自 ...
- Leetcode(6)Z字形变换
Leetcode(6)Z字形变换 [题目表述]: 将一个给定字符串根据给定的行数,以从上往下.从左到右进行 Z 字形排列. 比如输入字符串为 "LEETCODEISHIRING" ...
- Apache POI使用指南(HSSFWorkbook生成excel)
说 明: 官网:http://poi.apache.org/ 由于poi的功能多样,可以生成ppt.word.excel.......,本文就以生成excel为例进行说明,相信聪明的你一定能举一反三 ...
- numpy+pandas+ matplotlib模块(day18)
目录 numpy模块 二维数组 numpy数组的属性 T 数组的装置 dtype 数组元素的数据类型 size 数组元素的个数 ndim 数组的维数 shape数组的维度大小 astype 类型转换 ...
- 搭建 webpack + react 框架爬坑之路
由于工程实践需要搭一个 webpack + react 框架,本人刚开始学,就照b站上的react黑马视频做,爬过无数个坑...希望读者能引以为戒.我的是macos系统 https://www.bil ...
- Docker 实战—使用 Dockerfile 构建镜像
Dockerfile 指令详解请访问:https://www.cnblogs.com/cloudfloating/p/11737447.html 使用 Alpine Linux 作为基础镜像 Alpi ...
- Mui 微信支付、支付宝支付
利用mui 发起手机微信和支付宝支付 payStatement :调起微信支付接口的参数 参考文档: https://pay.weixin.qq.com/wiki/doc/api/app/app.ph ...
- API gateway 之 kong 安装 (二)
一.系统环境 [root@kong ~]# service iptables status iptables: Firewall is not running. [root@kong ~]# gete ...
- FHQ treap学习(复习)笔记
.....好吧....最后一篇学习笔记的flag它倒了..... 好吧,这篇笔记也鸽了好久好久了... 比赛前刷模板,才想着还是补个坑吧... FHQ,这个神仙(范浩强大佬),发明了这个神仙的数据结构 ...