HDU 5686(斐波那契数列大数)

开发者福利!热门AI工具限时免费用 购周边即赠Coding Plan Lite,Claude Code、Cursor等20+工具畅享,效率翻倍! 阅读详情

通过分析,可以发现题目就是一个斐波那契数列,但数很大,所以果断高精度模板。


#include <iostream>
#include <string>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
string &_string_add_string (const string &a, const string &b, string &res) {
    int sum_value = 0, add_bit = 0;
    const int alen = a.length(), blen = b.length();
    res = "0" + (alen > blen ? a : b);
    for (int i = alen-1, j = blen-1, k = res.length() - 1;
            i >= 0 || j >= 0 || add_bit > 0;
            --i, --j, --k) {
        sum_value = (i>=0 ? a[i]-48: 0) + (j>=0 ? b[j]-48: 0) + add_bit;
        add_bit = sum_value / 10;
        res[k] = sum_value%10 + '0';
    }
    if (res[0] == '0') { res = res.substr (1, res.length() - 1); }
    return res;
}
string fib (int n) {
    if (0 == n) { return "0"; }
    if (1 == n || 2 == n) { return "1"; }
    string a = "1", b = "1", ret = "0";
    for (int i = 3; i <= n; ++i) {
        _string_add_string (a, b, ret);
        b = a;
        a = ret;
    }
    return ret;
}
int main (void) {
    int n;
    string a, b, c;
    string ret;
    while (scanf ("%d", &n) != EOF) {
        printf ("%s\n", fib (n+1).c_str() );
    }
    return 0;
}

Problem B HDU - 5686 大数斐波那契数列 度熊面前有一个全是由1构成的字符串,被称为全1序列。你可以合并任意相邻的两个1,从而形成一个新的序列。对于给定的一个全1序列,请计算根据以上方法,可以构成多少种不同的序列。 Input 这里包括多组测试数据,每组测试数据包含一个正整数N,代表全1序列的长度。 1≤N≤200 Output 对于每组测试数据,输出一个整数,代表由题目中所给定的全1序列所能形成的新序列的数量。 Sample Input 1 3 5 Sample Output 1 3 8 Hint 如果序列是:(111)。可以构造出如下三个新序列 阅读详情

相关推荐

2016 百度之星 B题(java实现)

Problem B      Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Problem Description 度熊面前有一个全是由1构成的字符串,被称为全1序列。你可以合并任意相邻的两个1,从而形成一个新的序列。对于给定的一个全1

T_ravelers的博客 910

hdu 5686 Problem B【水题】

Problem B Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 543    Accepted Submission(s): 208 Problem Description   度熊面前有一个全是由1构成的字符串,被称

mengxiang000000 670

HDU - 5686 Problem B

Fibonacci数列大数运算

The Blog Of Uncle_Sugar 669

HDU - 5686

度熊面前有一个全是由1构成的字符串,被称为全1序列。你可以合并任意相邻的两个1,从而形成一个新的序列。对于给定的一个全1序列,请计算根据以上方法,可以构成多少种不同的序列。 Input这里包括多组测试数据,每组测试数据包含一个正整数NN,代表全1序列的长度。  1≤N≤2001≤N≤200 Output对于每组测试数据,输出一个整数,代表由题目中所给定的全1序列所能形成的新序列的数量

active2489595970的博客 350

HDU 5686 高精度加法

HDU 5686 Problem B Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 488    Accepted Submission(s): 186 Problem Description   度熊面前有一个全

DT2131 805

HDU 5686 斐波那契数列、Java求大数

原题:http://acm.hdu.edu.cn/showproblem.php?pid=5686   当我们要求f[n]时,可以考虑为前n-1个1的情况有加了一个1。   此时有两种情况:当不适用第n个1进行合并时,就有f[n-1]个序列;当使用这个1进行合并时,就有f[n-2]个序列。所以f[n] = f[n-1]+f[n-2]。   因为这道题数会很大,所以可以用Java做大数运算。 ...

weixin_30823227的博客 174

HDU 5686 Problem B

Problem Description   度熊面前有一个全是由1构成的字符串,被称为全1序列。你可以合并任意相邻的两个1,从而形成一个新的序列。对于给定的一个全1序列,请计算根据以上方法,可以构成多少种不同的序列。   Input 这里包括多组测试数据,每组测试数据包含一个正整数N,代表全1序列的长度。 1≤N≤200   Output 对

Occult 979

hdu5686大数斐波那契

Problem Description 度熊面前有一个全是由1构成的字符串,被称为全1序列。你可以合并任意相邻的两个1,从而形成一个新的序列。对于给定的一个全1序列,请计算根据以上方法,可以构成多少种不同的序列。 Input 这里包括多组测试数据,每组测试数据包含一个正整数N,代表全1序列的长度。1≤N≤200 Output 对于每组测试数据,输出一个整数,代表由题目中所...

weixin_30878501的博客 174

斐波那契数列题目合集

poj3070矩阵快速幂模板题 hdu2070斐波那契数列递归 hdu1865递归+大数 hdu2041 hdu3117 hdu4099 hdu4794 hdu1568 hdu5620 hdu5451 51nod1242 hdu5686 hdu2046 hdu5171 hdu1715 hdu1021 poj2753 poj2116 poj1953 poj1588 poj1021 loj10222斐...

fusu123456789的博客 863

HDU5686 Problem B【递推】

Problem B Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 1323    Accepted Submission(s): 554 Problem Description   度熊面前有一个全是由1构成的字符串,被

海岛Blog 1854

HDOJ/HDU 5686 Problem B(斐波拉契+大数~)

Problem Description 度熊面前有一个全是由1构成的字符串,被称为全1序列。你可以合并任意相邻的两个1,从而形成一个新的序列。对于给定的一个全1序列,请计算根据以上方法,可以构成多少种不同的序列。Input 这里包括多组测试数据,每组测试数据包含一个正整数N,代表全1序列的长度。1≤N≤200 Output 对于每组测试数据,输出一个整数,代表由题目中所给定的全1序列所能形

谙忆-陈浩翔 5520

HDU 5686 (斐波那契数列 高精度)

Problem B Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 222    Accepted Submission(s): 54 Problem Description   度熊面前有一个全是由1构成的字符串

morejarphone~ 1729

HDU - 5686】【Problem B】

题目: 度熊面前有一个全是由1构成的字符串,被称为全1序列。你可以合并任意相邻的两个1,从而形成一个新的序列。对于给定的一个全1序列,请计算根据以上方法,可以构成多少种不同的序列。 Input 这里包括多组测试数据,每组测试数据包含一个正整数NN,代表全1序列的长度。  1≤N≤2001≤N≤200 Output 对于每组测试数据,输出一个整数,代表由题目中所给定的全1序列所能形成的新序...

哇哈哈哈的博客 307

【Java / python】高精度数运算(大数类)训练

文章目录【HDU 1002】 A + B Problem IIB1. Social Network (easy version)(模拟)B2. Social Network (hard version)(加强版) 【HDU 1002】 A + B Problem II 原题链接: A + B Problem II 题意: 思路: Code1(C++): Code2(C++): 用...

360°顺滑 1763

HDU 5686 Problem B(大数斐波那契

Problem BTime Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 1493    Accepted Submission(s): 612Problem Description  度熊面前有一个全是由1构成的字符串,被称为全1序列。你可以合并...

BBHHTT的博客 451

HDU 5686:2016"百度之星" - 资格赛 Problem B

Problem B Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 403    Accepted Submission(s): 136 Problem Description   度熊面前有一个全是由1构成的字符

小坏蛋_千千 815

HDU - 5686Problem B

HDU - 5686 Problem B 度熊面前有一个全是由1构成的字符串,被称为全1序列。你可以合并任意相邻的两个1,从而形成一个新的序列。对于给定的一个全1序列,请计算根据以上方法,可以构成多少种不同的序列。 Input这里包括多组测试数据,每组测试数据包含一个正整数NN,代表全1序列的长度。  1≤N≤2001≤N≤200 Output对于每组测试数据,输出一个

x_ring的博客 263

[HDU5686]2016"百度之星" - 资格赛 Problem B

题目大意:给你n,规定一个串中相邻的两个1可以合并为一个2(别的不行),让你求长度为n的全1串最多能变成多少种不同的串。 解题思路:我们先来找一波规律,发现n=1,2,3,4,5时答案分别为1,2,3,5,8。 嗯?斐波那契数列?没错就是这样。不过斐波那契数列的第200项好像有四五十位,long long也存不下? Java大法好,不用打烦人的高精度!当然时间就比较慢了。 Jav...

182
上一篇: HDU 5690 ALL X
下一篇: HDU 5688
Kim0403
博客等级 码龄12年 25粉丝 132原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值