Vijos 1040 高精度乘法
描述
高精度乘法
输入:两行,每行表示一个非负整数(不超过10000位)
输出:两数的乘积。
样例1
样例输入1
99
101
样例输出1
9999
题解
这道题和之前的Vijos 1010 清帝之惑之乾隆一样是求高精度乘法的题,不同之处是这次是两个大数乘法,之前是一个大数和一个整数范围内的数进行乘法,所以数据的保存方式和处理方式稍微有些区别。具体见代码:)
代码:
#include <cstdio>
#include <cstring>
using namespace std;
const int maxn = 20020;
char s[maxn], t[maxn], res[maxn], tmp[maxn];
int lenS, lenT;
void preSolve()
{
memset(tmp, 0, sizeof(tmp));
memset(res, 0, sizeof(res));
lenS = strlen(s);
lenT = strlen(t);
// strrev(s);
// strrev(t);
for (int i = 0; i < lenS/2; i ++)
{
char p = s[i];
s[i] = s[lenS-1-i];
s[lenS-1-i] = p;
}
for (int i = 0; i < lenT/2; i ++)
{
char p = t[i];
t[i] = t[lenT-1-i];
t[lenT-1-i] = p;
}
for (int i = 0; i < lenS; i ++)
s[i] -= '0';
for (int i = 0; i < lenT; i ++)
t[i] -= '0';
}
void solve()
{
for (int i = 0; i < lenT; i ++)
{
int a = t[i];
int c = 0;
for (int j = 0; j < lenS + 1; j ++)
{
c += t[i] * s[j];
tmp[j] = c % 10;
c /= 10;
}
c = 0;
for (int j = 0; j < lenS + 1; j ++)
{
c += tmp[j] + res[i+j];
res[i+j] = c % 10;
c /= 10;
}
}
int i = maxn-1;
for (;res[i] == 0 && i > 0; i --);
for (;i >= 0; i--)
printf("%d", res[i]);
puts("");
}
int main()
{
scanf("%s%s", s, t);
preSolve();
solve();
return 0;
}
Vijos 1040 高精度乘法的更多相关文章
- [vijos P1040] 高精度乘法
如果这次noip没考好,完全是因为从7月29日之后就没有再写过程序了.说起来,真是一个泪流满面的事实… 那这样一个弱智题练手恢复代码能力,竟然还花了我两个晚上(当然不是两整个晚上…) 第一天TLE了, ...
- 【PKU1001】Exponentiation(高精度乘法)
Exponentiation Time Limit: 500MS Memory Limit: 10000K Total Submissions: 145642 Accepted: 35529 ...
- hdu 1042 N!(高精度乘法 + 缩进)
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=1042 题目大意:求n!, n 的上限是10000. 解题思路:高精度乘法 , 因为数据量比较大, 所以 ...
- hdu 1042 N!(高精度乘法)
Problem Description Given an integer N(0 ≤ N ≤ 10000), your task is to calculate N! Input One N in ...
- 【POJ 1001】Exponentiation (高精度乘法+快速幂)
BUPT2017 wintertraining(15) #6A 题意 求\(R^n\) ( 0.0 < R < 99.999 )(0 < n <= 25) 题解 将R用字符串读 ...
- [leetcode]43. Multiply Strings高精度乘法
Given two non-negative integers num1 and num2 represented as strings, return the product of num1 and ...
- H. GSS and Simple Math Problem 高精度乘法模板
链接:https://www.nowcoder.com/acm/contest/104/G来源:牛客网 题目描述 Given n positive integers , your task is to ...
- 高精度乘法--C++
高精度乘法--C++ 模仿竖式乘法,在第一步计算的时候将进位保留,第一步计算完再处理进位.(见代码注释) 若要处理正负情况,可在数据输入后加以判断,处理比较简单. 小数计算也可参照该方法,不过对齐方式 ...
- C语言高精度乘法
#include <stdio.h> void highPrecision (int N ); ] = {, }, length = ; //开辟一个大的数组,全局变量length记录长度 ...
随机推荐
- java面试集锦
HashMap和HashTable的区别 他们都是Map接口的实现类,实现了将唯一键值映射到特定的值上. HashMap没有分类或者排序,它允许一个null和多个null值. HashTable类似于 ...
- 关于Python编码,超诡异的,我也是醉了
Python的编码问题,真是让人醉了.最近碰到的问题还真不少.比如中文文件名.csv .python对外呈现不一致啊,感觉好不公平. 没图说个JB,下面立马上图. 我早些时候的其他脚本,csv都是 ...
- javaWeb学习总结(2)- http协议
一.http简介 1.基本介绍: (1)客户端连上web服务器后,若想获得web服务器中的某个web资源,需遵守一定的通讯格式,HTTP协议用于定义客户端与web服务器通迅的格式. (2)WEB浏览器 ...
- spring 事务无效解决方法
(原) spring 事务目前有二种,注解式和声明式,以前都是以公司里的框架写好的,没有学习的机会,今天抽空好好试了下,结果遇到好多问题. 1.注解式 最开始是这么玩的,发现数据进数据库了,没有起作用 ...
- Spring学习笔记——01 控制反转
想一下之前学的Java,如果某个类需要引用某个对象,则需要手动new一个出来.这样带来的一个问题就是,若被引用的类发生改动或被删除,则引用它的所有类都会报错.因为两个类耦合在一起了.解决的办法就是不由 ...
- Spring读取xml配置文件的原理与实现
本篇博文的目录: 一:前言 二:spring的配置文件 三:依赖的第三方库.使用技术.代码布局 四:Document实现 五:获取Element的实现 六:解析Element元素 七:Bean创造器 ...
- 脑洞大开--一条项目中常用的linux命令引发的经典算法题
小时候家里定了<读者>的月刊,里面记录一个故事:说有有个偏僻的乡村一日突然来了一个美女,她携着万贯家财子女在当地安家落户,成了当地的乡绅.她让她的子女世世代代的保守这个秘密,直到这个秘密不 ...
- javacv开发详解之1:调用本机摄像头视频(建议使用javaCV1.3版本)
javaCV系列文章: javacv开发详解之1:调用本机摄像头视频 javaCV开发详解之2:推流器实现,推本地摄像头视频到流媒体服务器以及摄像头录制视频功能实现(基于javaCV-FFMPEG.j ...
- Java代码编写规范(不是标准规范,自行整理,无须纠结)
最近回过头来给以前的项目增加功能,发现之前写的注释非常不全,代码也非常的不整洁,有些地方写的''窝七八烂的,看着很不舒服:又恰好经理最近也经常跟我提起代码规范,我们就讨论了一下代码规范的重要性和必要性 ...
- Android应用安全学习笔记前言
Android是基于Linux kernel的一个自由及开放源代码的操作系统,主要用于移动设备.在2011年第一季度超越了塞班系统跃居了全球第一.本系列作为分享的东西吧.比较基础. 文章也不知道会分为 ...