高精度加法 bignum类实现(hdu 1865)
来源:互联网 发布:淘宝卖家贷款多久到账 编辑:程序博客网 时间:2024/06/08 15:47
#include <bits/stdc++.h>
#define maxn 10005
#define LL long long
using namespace std;
struct bignum
{
char a[maxn];
bignum operator +(const bignum &b)
{
bignum c(a);
int i,j,k,sum=0;
k=strlen(c.a)>strlen(b.a)?strlen(c.a):strlen(b.a);
c.a[k+1]=0;
for(i=strlen(c.a)-1,j=strlen(b.a)-1; i>=0||j>=0; i--,j--,k--)
{
if(i>=0) sum+=c.a[i]-'0';
if(j>=0) sum+=b.a[j]-'0';
c.a[k]=sum%10+'0';
sum/=10;
}
if(sum) c.a[0]=sum+'0';
else strcpy(c.a,&c.a[1]);
return c;
}
bignum &operator =(const bignum &b)
{
strcpy(a,b.a);
return *this;
}
bignum(char s[])
{
strcpy(a,s);
}
bignum()
{
memset(a,0,sizeof(a));
}
};
bignum dp[500];
void ini()
{
dp[0]=dp[1]=bignum("1");
for(int i=2; i<500; i++)
{
dp[i]=dp[i-1]+dp[i-2];
}
}
int main()
{
// bignum c,b;
// while(scanf("%s%s",c.a,b.a))
// {
// cout<<(c+b).a<<endl;
// }
ini();
int cas;
cin>>cas;
char str[maxn];
while(cas--)
{
scanf("%s",str);
int l=strlen(str);
strcpy(str,dp[l].a);
printf("%s\n",str);
}
return 0;
}
#define maxn 10005
#define LL long long
using namespace std;
struct bignum
{
char a[maxn];
bignum operator +(const bignum &b)
{
bignum c(a);
int i,j,k,sum=0;
k=strlen(c.a)>strlen(b.a)?strlen(c.a):strlen(b.a);
c.a[k+1]=0;
for(i=strlen(c.a)-1,j=strlen(b.a)-1; i>=0||j>=0; i--,j--,k--)
{
if(i>=0) sum+=c.a[i]-'0';
if(j>=0) sum+=b.a[j]-'0';
c.a[k]=sum%10+'0';
sum/=10;
}
if(sum) c.a[0]=sum+'0';
else strcpy(c.a,&c.a[1]);
return c;
}
bignum &operator =(const bignum &b)
{
strcpy(a,b.a);
return *this;
}
bignum(char s[])
{
strcpy(a,s);
}
bignum()
{
memset(a,0,sizeof(a));
}
};
bignum dp[500];
void ini()
{
dp[0]=dp[1]=bignum("1");
for(int i=2; i<500; i++)
{
dp[i]=dp[i-1]+dp[i-2];
}
}
int main()
{
// bignum c,b;
// while(scanf("%s%s",c.a,b.a))
// {
// cout<<(c+b).a<<endl;
// }
ini();
int cas;
cin>>cas;
char str[maxn];
while(cas--)
{
scanf("%s",str);
int l=strlen(str);
strcpy(str,dp[l].a);
printf("%s\n",str);
}
return 0;
}
阅读全文
0 0
- 高精度加法 bignum类实现(hdu 1865)
- HDU 1047 Integer Inquiry(高精度加法)
- hdu 1047 Integer Inquiry(高精度加法)
- hdu 1715 大菲波数(高精度加法)
- HDU 1002 (高精度加法运算)
- HDU-1047 高精度加法
- hdu 1002 高精度加法
- hdu 1002 高精度加法
- HDU 5686 高精度加法
- python实现高精度加法
- HDU 1002高精度加法的栈实现_简单易懂
- HDU-1753 实数高精度加法
- Hdu-1002(高精度加法_java)
- hdu 1865 1sting((高精度加法+ 斐波那契数)
- 高精度加法模板(string类,char)
- 高精度加法乘法类
- 大数(高精度)加法
- 二进制(高精度加法)
- Android 你应该知道的的应用冷启动过程分析和优化方案
- devc++使用
- 设计模式之解释器模式
- dev c++ 最新版本5.0
- 2015 年度新增开源软件排名 TOP 100
- 高精度加法 bignum类实现(hdu 1865)
- vc++速成版
- datetimepicker的用法
- 解决vc6.0卡死的方法
- 设计模式9-命令模式
- Dialog的刷新流程
- HDU 2682 Tree 最小生成树 prim模板
- iOS开发UI篇—UIWindow简单介绍
- 1.2元字符