简单大数

(要压位,不然会超内存)

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<vector>
using namespace std;
const int base = 1000000;
struct BigInt
{
vector<int> Num;
BigInt() { Num.clear(); }
void Set(int n) { Num.clear(); Num.push_back(n); }
BigInt operator + (const BigInt &a) const
{
BigInt c;
int len1 = Num.size(), len2 = a.Num.size();
int i;
for(i = 0; i < len1 && i < len2; ++i)
c.Num.push_back(Num[i] + a.Num[i]);
for(; i < len1; ++i) c.Num.push_back(Num[i]);
for(; i < len2; ++i) c.Num.push_back(a.Num[i]);
for(int i = 0; i < c.Num.size(); ++i)
{
if(c.Num[i] >= base)
{
if(i == c.Num.size() - 1) c.Num.push_back(c.Num[i] / base);
else c.Num[i+1] += c.Num[i] / base;
c.Num[i] %= base;
}
}
return c;
} void Print()
{
int len = Num.size();
printf("%d",Num[len-1]);
for(int i = len - 2; i >= 0; --i)
{
int k = base / 10;
while(Num[i] < k)
{
printf("0");
k /= 10;
}
printf("%d",Num[i]);
}
printf("\n");
}
}N[500000]; void Init()
{
N[1].Set(1);N[2].Set(1);
N[3].Set(1);N[4].Set(1);
for(int i = 5; ; ++i)
{
N[i] = N[i-1] + N[i-2] + N[i-3] + N[i-4];
if(N[i].Num.size() * 5 > 2005) break;
}
} int main()
{
Init();
int n;
while(cin >> n)
{
N[n].Print();
}
return 0;
}

HDU 1250的更多相关文章

  1. hdu 1250 Hat&#39;s Fibonacci

    pid=1250">点击此处就可以传送hdu 1250 Problem Description A Fibonacci sequence is calculated by adding ...

  2. hdu 1250 Hat's Fibonacci

    题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=1250 Hat's Fibonacci Description A Fibonacci sequence ...

  3. HDU 1250 Hat's Fibonacci(大数相加)

    传送门:http://acm.hdu.edu.cn/showproblem.php?pid=1250 Hat's Fibonacci Time Limit: 2000/1000 MS (Java/Ot ...

  4. hdu 1250 Hat's Fibonacci(java,简单,大数)

    题目 java做大数的题,真的是神器,来一道,秒一道~~~ import java.io.*; import java.util.*; import java.math.*; public class ...

  5. hdu 1250 Hat's Fibonacci(高精度数)

    //  继续大数,哎.. Problem Description A Fibonacci sequence is calculated by adding the previous two membe ...

  6. HDOJ/HDU 1250 Hat's Fibonacci(大数~斐波拉契)

    Problem Description A Fibonacci sequence is calculated by adding the previous two members the sequen ...

  7. Hat's Fibonacci hdu 1250

    Problem Description A Fibonacci sequence is calculated by adding the previous two members the sequen ...

  8. HDU 1250 Hat's Fibonacci(高精度)

    Problem Description A Fibonacci sequence is calculated by adding the previous two members the sequen ...

  9. hdu 1250 树形DP

    Anniversary party Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u S ...

随机推荐

  1. Vertica系列:Vertica和Hadoop的互操作性

    Vertica 8和 Hadoop 集群的互操作性已经很不错的, 但这块肯定是Vertica研发的重点, 将来可能还有较大的变动. Vertica 集群 和 Hadoop 集群的两种布局方式 集群布局 ...

  2. Kafka 简要使用说明

    Kafka 简要使用说明 参考文章 Kafka背景及架构介绍http://www.infoq.com/cn/articles/kafka-analysis-part-1 Apache kafka 工作 ...

  3. ubuntu终端命令启动matlab方法

    让所有用户都有权限使用matlab,在终端输入 sudo gedit /etc/profile 在后行写 export MATLABPATH=/home/ubuntu/MATLAB/R2016b:$M ...

  4. 双系统中卸载Ubuntu后又efi系统分区删除方法

    参考:https://blog.csdn.net/qq_28057541/article/details/51723914 首先 window键(窗口键) + R ,然后输入 Diskpart 打开命 ...

  5. mvc EF框架中,加载外键对象序列化对象时报错 序列化类型为XX的对象时检测到循环引用

    Newtonsoft.Json.dll 或者通过->工具->库程序包管理工具->NuGet管理包->联机 输入Newtonsoft或者json.net Newtonsoft.J ...

  6. js伪数组转数组

    方法1: 遍历伪数组,在把值push进一个空数组中 方法2: 使用数组的slice方法,它返回的是数组,使用call或apply指向伪数组 var arr = [].slice.call(argume ...

  7. C#获取客户端IP地址

    客户端ip:Request.ServerVariables.Get("Remote_Addr").ToString();客户端主机名:Request.ServerVariables ...

  8. Springboot(一)概念

    一.概念 Spring boot 用来简化新Spring应用的初始搭建和开发配置. 二.特性 1.创建独立的Spring应用程序,不是对spring功能增强,而是提快速使用Spring的功能: 2.嵌 ...

  9. Callable的用法示例

    //Runnable是执行工作的独立任务,但是它不返回任何值.在JavaSE5中引入的Callable是一种具有类型参数的泛型,它的类型参数表的是从方法call()中返回的值,并且必须使用Execut ...

  10. compileSdkVersion,minSdkVersion 和 targetSdkVersion

    compileSdkVersion(Eclipse中叫做build target) 1.在eclipse中位于项目根目录中的project.properties文件中 2.在studio中位于项目中的 ...