【HIHOCODER 1420】 Bigint Multiplication
描述
Given 2 nonnegative integers a and b, calculate a × b.
输入
One line with 2 integers a and b separated by a single space.
0 ≤ a, b ≤ 10100.
输出
The value of a × b.
样例输入
100000000000000000000 100000000000000000000
样例输出
10000000000000000000000000000000000000000
注意很多0时只要输出一个
#include <bits/stdc++.h>
#define ll long long
#define inf 1000000000
#define PI acos(-1)
#define bug puts("here")
#define REP(i,x,n) for(int i=x;i<=n;i++)
#define DEP(i,n,x) for(int i=n;i>=x;i--)
#define mem(a,x) memset(a,x,sizeof(a))
using namespace std;
inline int read(){
int x=0,f=1;
char ch=getchar();
while(ch<'0'||ch>'9'){if(ch=='-') f=-1;ch=getchar();}
while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
return x*f;
}
const int N=205;
class BigNumber{
public:
char a[N];
int tot;
BigNumber(char t[]){
tot=0;
DEP(i,strlen(t)-1,0) a[tot++]=t[i];
}
BigNumber(){tot=0;}
};
BigNumber Add (BigNumber an,BigNumber bn){
int mn=max(bn.tot,an.tot),sum,add=0;
BigNumber tmp;
REP(i,0,mn-1){
sum=0;
if(i<bn.tot) sum+=bn.a[i]-'0';
if(i<an.tot) sum+=an.a[i]-'0';
sum+=add;
add=sum/10;sum%=10;
tmp.a[i]=sum+'0';
}
tmp.tot=mn;
if(add!=0) tmp.a[tmp.tot++]=add+'0';
return tmp;
}
BigNumber s1 (int s,BigNumber bn){
int sum,add=0;
BigNumber tmp;
REP(i,0,bn.tot-1){
sum=s*(bn.a[i]-'0')+add;
add=sum/10;sum%=10;
tmp.a[i]=sum+'0';
}
tmp.tot=bn.tot;
if(add!=0) tmp.a[tmp.tot++]=add+'0';
return tmp;
}
BigNumber multi (BigNumber an,BigNumber bn){
BigNumber c1,t;
int sum,add;
REP(i,0,an.tot-1){
t=s1(an.a[i]-'0',bn);
if(i!=an.tot-1){
DEP(j,bn.tot-1,0) bn.a[j+1]=bn.a[j];
bn.a[0]='0';
bn.tot++;
}
c1=Add(c1,t);
}
return c1;
}
char t1[N],t2[N];
int main(){
// while(1)
{
cin>>t1>>t2;
BigNumber ans=multi(BigNumber(t1),BigNumber(t2));
bool flag=false;
REP(i,0,ans.tot-1) if(ans.a[i]!='0') {flag=true;break;}
if(!flag) {puts("0");return 0;}
DEP(i,ans.tot-1,0) printf("%c",ans.a[i]);
puts("");
}
return 0;
}
【HIHOCODER 1420】 Bigint Multiplication的更多相关文章
- 【hihocoder 1298】 数论五·欧拉函数
[题目链接]:http://hihocoder.com/problemset/problem/1298 [题意] [题解] 用欧拉筛法; 能够同时求出1..MAX当中的所有质数和所有数的欧拉函数的值; ...
- 【hihocoder 1297】数论四·扩展欧几里德
[题目链接]:http://hihocoder.com/problemset/problem/1297 [题意] [题解] 问题可以转化为数学问题 即(s1+v1*t)%m == (s2+v2*t)% ...
- 【hihocoder 1296】数论三·约瑟夫问题
[题目链接]:http://hihocoder.com/problemset/problem/1296 [题意] [题解] [Number Of WA] 0 [完整代码] #include <b ...
- 【hihocoder 1295】Eular质数筛法
[题目链接]:http://hihocoder.com/problemset/problem/1295 [题意] [题解] 可以在O(N)的复杂度内求出1..N里面的所有素数; 当然受空间限制,N可能 ...
- 【hihocoder 1287】 数论一·Miller-Rabin质数测试
[题目链接]:http://hihocoder.com/problemset/problem/1287 [题意] [题解] 取的底数必须是小于等于n-1的; 那12个数字能通过2^64以内的所有数字; ...
- 【hihocoder 1333】平衡树·Splay2
[题目链接]:http://hihocoder.com/problemset/problem/1333 [题意] [题解] 伸展树; 要求提供操作: 1.插入一个元素,两个权值,id作为查找的比较权值 ...
- 【hihocoder 1329】平衡树·Splay(Splay做法)
[题目链接]:http://hihocoder.com/problemset/problem/1329 [题意] [题解] 插入操作:-,记住每次插入之后都要把它放到根节点去就好; 询问操作:对于询问 ...
- 【hihocoder 1329】 平衡树·Splay(set做法)
[题目链接]:http://hihocoder.com/problemset/problem/1329 [题意] [题解] 因为一开始是空的树,所以; n其实就代表了树中的最多元素个数; 则最坏的情况 ...
- 【hihocoder 1476】矩形计数
[题目链接]:http://hihocoder.com/problemset/problem/1476 [题意] [题解] 首先不考虑黑格子,计算出一共有多少个矩形: 枚举矩形的大小r×c,这样大小的 ...
随机推荐
- CSS——三种页面引入方法
目的:为了把样式和内容分开,并且使网页元素更加丰富,引入了CSS CSS页面引入有三种方式: 1)内联式:比较不常用,因为内容和样式仍然在一起,不方便.示例: <!DOCTYPE html> ...
- Mybatis 查询一个对象包含多个子对象 (List 包含 List)
功能:查询一个数据列表 且每个数据中包含各自的子数据集合 使用场景:1. 当需要查询多订单数据且同时订单数据中需要包含订单明细数据时 2. 当需要查询多评论数据且同时评论数据中需要包含评论回复数据时 ...
- Ubuntu 18.04 Python3.6.6导入wx模块报Gtk-Message : 17:06:05.797 :Failed to load module "canberra-gtk-module"
解决办法: root@sishen:~# apt-get install libcanberra-gtk-module
- nginx的配置文件server_name的意义 location意义
配置不同的域名 不同域名都可以有首地址 location 同一域名下 分发到不同的路径 或者项目
- JsonModel&AFNetWorking
// HttpManager.h // JsonModel&AFNetWorking // // Created by qianfeng on 15/7/21. // Copyright (c ...
- 使用 swift3.0高仿新浪微博
项目地址:https://github.com/SummerHH/swift3.0WeBo 使用 swift3.0 高仿微博,目前以实现的功能有,添加访客视图,用户信息授权,首页数据展示(支持正文中连 ...
- easyUI filebox限定文件大小
转载自:https://www.2cto.com/kf/201701/574667.html 侵删 easyui1.5filebox控件中增加文件大小的验证规则 2017-01-07 09:22:0 ...
- Java基础:(五)Object通用方法
一.Object对象的九个方法 getClass():hashCode():equals():clone():toString():notify():notifyAll():wait():finali ...
- css实现瀑布流
<style> .container{ column-width:250px; -webkit-column-width:250px; ...
- SQL基本语法总结
#创建数据库 DROP DATABASE IF EXISTS 数据库名; CREATE DATABASE 数据库名; #展示所有的数据库: SHOW DATABASES; #查看某个数据库的定义信息: ...