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中的file类与IO流
File类 位置于java.io包构造方法:File(String parent, String child)new file("d:\\","a.txt") ...
- Java垃圾回收--判断可触及性
博客搬家自https://my.oschina.net/itsyizu/blog/ 垃圾回收的基本思想: 考察每一个对象的可触及性(从根节点开始是否可以访问到这个对象,如果可以,这说明当前对象正在使用 ...
- OpenStack dashboard界面操作 实现登陆虚拟机并通信
1.创建项目,点击"创建项目" (1).填写项目信息 (2).添加与之关联的项目成员 (3).点击"配额",为用户在平台上分配一个操作的空间,便于用户创建网络, ...
- ORACLE中死锁的知识点总结
死锁的概念 什么是死锁呢? 其实我们生活中也有很多类似死锁的例子. 我先举一个生活中的例子:过年回家,父亲买了一把水弹枪,儿子和侄子争抢着要先玩,谁也不让谁,拆开包装后,一个抢了枪, 一个逮住了子 ...
- VR全景,零售业冬天里的一把火——全景智慧城市
对今天的中国来说,寻找经济转型的突破口,寻找经济权力的新霸主,零售业应该当仁不让. 零售业正在经历一场脱胎换骨的改造.一方面零售额达到前所未有的水平,另一方面,传统零售商也面临诸多挑战,其中之一,便是 ...
- Python教程(2.6)——list和tuple简介
Python中内置的类型有list和tuple. List list类似于C/C++的数组,可以存储多个数字.例如你可能会需要存储一个班里所有人的名字.这时就可以用到list.list中存储的数据叫做 ...
- MyBatis7:MyBatis插件及示例----打印每条SQL语句及其执行时间
Plugins 摘一段来自MyBatis官方文档的文字. MyBatis允许你在某一点拦截已映射语句执行的调用.默认情况下,MyBatis允许使用插件来拦截方法调用 Executor(update.q ...
- zookeeper 新手安装指南
Zookeeper集群的角色: Leader 和 follower (Observer) zk集群最好配成奇数个节点 只要集群中有半数以上节点存活,集群就能提供服务 本事例采用版本:zookee ...
- php 面向对象的三大特性
<?phpheader("Content-type:text/html;charset=utf-8");/*封装目的:为了使类更加安全做法:1.将成员变量变成私有2.做一个成 ...
- 20170422早会训话,ps:程序出现两次BUG,领导很生气
针对这种问题: 要讲3点 1.有没有拖团队后腿: 作为一名前端开发人员,对于前端开发的任务,我能够在第一时间完成,保证时间进度,但光做到这一点是不够的,不能只讲究任务,不考虑结果,会不会出现问题造成其 ...