记录编号 |
249596 |
评测结果 |
WWWWWWWWWW |
题目名称 |
[NOIP 2008]传纸条 |
最终得分 |
0 |
用户昵称 |
安呐一条小咸鱼。 |
是否通过 |
未通过 |
代码语言 |
C++ |
运行时间 |
0.000 s |
提交时间 |
2016-04-13 09:09:52 |
内存使用 |
0.28 MiB |
显示代码纯文本
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<iostream>
#define MAXN 10000
using namespace std;
struct Bign{
int len;
int num[20];
};
int n;
Bign Change(int a);// Bign a1=My_Change(a); a为int,定义的Bign a1 中的a1 是a转化为高精度的数
Bign Add(Bign a,Bign b);//高精加
Bign Mul(Bign a,Bign b);//高精乘
bool Comp(Bign a,Bign b);//比较 a<b return true ; a>=b return false;
int main()
{
freopen("message.in","r",stdin);
freopen("message.out","w",stdout);
// int a;
return 0;
}
Bign Change(int a)
{
Bign temp={0};
while(a)
{
temp.num[temp.len++]=a%MAXN;
a/=MAXN;
}
return temp;
}
Bign Mul(Bign a,Bign b)
{
Bign temp={0};
temp.len=a.len+b.len-1;
for(int i=0;i<a.len;++i)
{
for(int j=0;j<b.len;++j)
{
temp.num[i+j]+=a.num[i]*b.num[j];
}
}
for(int i=0;i<temp.len;++i)
{
if(temp.num[i]>MAXN)
{
temp.num[i+1]+=temp.num[i]/MAXN;
temp.num[i]%=MAXN;
}
}
if(temp.num[temp.len]!=0) temp.len++;
return temp;
}
Bign Add(Bign a,Bign b)
{
if(a.len<b.len) a.len=b.len;
for(int i=0;i<a.len;++i) a.num[i]+=b.num[i];
for(int i=0;i<a.len;++i)
{
if(a.num[i]>MAXN)
{
a.num[i+1]++;
a.num[i]-=MAXN;
}
}
if(a.num[a.len]!=0) a.len++;
return a;
}
bool Comp(Bign a,Bign b)
{
if(a.len<b.len) return 1;
if(a.len>b.len) return 0;
for(int i=a.len-1;i>=0;--i)
{
if(a.num[i]>b.num[i]) return 0;
if(a.num[i]<b.num[i]) return 1;
}
return 0;
}