描述


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的更多相关文章

  1. 【hihocoder 1298】 数论五·欧拉函数

    [题目链接]:http://hihocoder.com/problemset/problem/1298 [题意] [题解] 用欧拉筛法; 能够同时求出1..MAX当中的所有质数和所有数的欧拉函数的值; ...

  2. 【hihocoder 1297】数论四·扩展欧几里德

    [题目链接]:http://hihocoder.com/problemset/problem/1297 [题意] [题解] 问题可以转化为数学问题 即(s1+v1*t)%m == (s2+v2*t)% ...

  3. 【hihocoder 1296】数论三·约瑟夫问题

    [题目链接]:http://hihocoder.com/problemset/problem/1296 [题意] [题解] [Number Of WA] 0 [完整代码] #include <b ...

  4. 【hihocoder 1295】Eular质数筛法

    [题目链接]:http://hihocoder.com/problemset/problem/1295 [题意] [题解] 可以在O(N)的复杂度内求出1..N里面的所有素数; 当然受空间限制,N可能 ...

  5. 【hihocoder 1287】 数论一·Miller-Rabin质数测试

    [题目链接]:http://hihocoder.com/problemset/problem/1287 [题意] [题解] 取的底数必须是小于等于n-1的; 那12个数字能通过2^64以内的所有数字; ...

  6. 【hihocoder 1333】平衡树·Splay2

    [题目链接]:http://hihocoder.com/problemset/problem/1333 [题意] [题解] 伸展树; 要求提供操作: 1.插入一个元素,两个权值,id作为查找的比较权值 ...

  7. 【hihocoder 1329】平衡树·Splay(Splay做法)

    [题目链接]:http://hihocoder.com/problemset/problem/1329 [题意] [题解] 插入操作:-,记住每次插入之后都要把它放到根节点去就好; 询问操作:对于询问 ...

  8. 【hihocoder 1329】 平衡树·Splay(set做法)

    [题目链接]:http://hihocoder.com/problemset/problem/1329 [题意] [题解] 因为一开始是空的树,所以; n其实就代表了树中的最多元素个数; 则最坏的情况 ...

  9. 【hihocoder 1476】矩形计数

    [题目链接]:http://hihocoder.com/problemset/problem/1476 [题意] [题解] 首先不考虑黑格子,计算出一共有多少个矩形: 枚举矩形的大小r×c,这样大小的 ...

随机推荐

  1. spoolight on oracle 配置

    spoolight seting 1ORACLE_HOME=D:\oracle\product\11.2.0\client_1set SQLPATH=D:\oracle\product\11.2.0\ ...

  2. winform 程序隐藏窗口运行

    DWPublishForm frm = new DWPublishForm(); frm.IsAutoUpdate = true; frm.ShowInTaskbar = false; frm.For ...

  3. MVC 路由URL重写

    在现今搜索引擎制霸天下的时代,我们不得不做一些东西来讨好爬虫,进而提示网站的排名来博得一个看得过去的流量. URL重写与优化就是搜索引擎优化的手段之一. 假如某手机网站(基于ASP.NET MVC)分 ...

  4. 如何构建多模块的SpringBoot项目

    通过阅读本文你将了解到:如何将已有SpringBoot项目改成多模块 & 如何新构建多模块SpringBoot项目 以下示例基于我正在使用的order(订单服务)进行演示,无论你用的是什么项目 ...

  5. 【持续更新】MyBatis相关

    MyBatis开发结构 #与$的区别

  6. 【Android】ContentProvider

    转载地址:http://www.cnblogs.com/lqminn/archive/2012/10/16/2725624.html 一.ContentProvider的概念 ContentProvi ...

  7. Android RecyclerView使用GridLayoutManager导致间隙变大的问题

    我用recyclerView的时候设置LayoutManager为Grid,添加decoration为Grid,作为二级列表时,多次点击一级列表来跳转的时候,两张图之间的间隙在逐渐变大,后来发现是因为 ...

  8. iOS-Swift相比Objective-C有哪些优缺点

    Swift,是苹果于2014年WWDC(苹果开发者大会)发布的新开发语言,可与Objective-C共同运行于Mac OS和iOS平台,用于搭建基于苹果平台的应用程序.它是一款易学易用的编程语言,而且 ...

  9. 【迷你微信】基于MINA、Hibernate、Spring、Protobuf的即时聊天系统:4.技术简介之Spring

    欢迎阅读我的开源项目<迷你微信>服务器与<迷你微信>客户端 Spring是一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One ...

  10. 【TensorFlow入门完全指南】基本操作

    众所周知我暂时弃掉了那个音乐生成的坑,原因是我的代码写得还不够纯熟…… 现在我找到了一个项目,用来从代码基础开始补起,同时写下学习笔记. 项目地址:https://github.com/aymeric ...