SGU[123] The sum

Description

描述

The Fibonacci sequence of numbers is known: F1 = 1; F2 = 1; Fn+1 = Fn + Fn-1, for n>1. You have to find S - the sum of the first K Fibonacci numbers.

斐波那契数列广为大家所知:F= 1; F= 1; Fn+1 = F+ Fn-1(其中n > 1)。你需要求斐波那契数列前K个数的和S。

Input

输入

First line contains natural number K (0<K<41).

输入文件包含自然数K(0<K<41)。

Output

输出

First line should contain number S.

第一行包含整数S。

Sample Input

样例输入

5

Sample Output

样例输出

12

Analysis

分析

考虑到数据范围,这道题目只要模拟一下就行了。但是我还是比较喜欢使用数学方法来求解。

令Sn表示斐波那契数列的前N项和,那么我们很容易求得S= Fn+2 - 1。

Solution

解决方案

#include <iostream>

using namespace std;

const int MAX = 64;

int f[MAX];

int main()
{
	int N;
	cin >> N;
	f[1] = f[2] = 1;
	for(int i = 3; i <= N + 2; i++)
	{ f[i] = f[i - 1] + f[i - 2]; }
	cout << f[N + 2] - 1 << endl;
	return 0;
}

这道题目应该是非常简单的。当然,如果你不知道斐波那契数列可以在O(n)时间内求得,那么这道题目对于你来说还是有一定难度的。

时间: 2024-07-28 13:39:38

SGU[123] The sum的相关文章

SGU - 123 - The sum (简单数学!)

SGU - 123 The sum Time Limit: 250MS   Memory Limit: 4096KB   64bit IO Format: %I64d & %I64u Submit Status Description Here is your second problem, keep calm and solve it . Nacci sequence of numbers is known to all : F1 = 1; F2 = 1; Fn+1 = Fn + Fn-1,

SGU 231.Prime Sum

题意: 求有多少对质数(a,b)满足a<=b 且a+b也为质数.(a+b<=10^6) Solution: 除了2之外的质数都是奇数,两个奇数的和是偶数,不可能是质数.所以题目就是求差为2的质数对的个数. 先用筛法刷出10^6内的质数,用bool数组标记(int型数组会超内存),然后扫一遍筛出来的质数,统计满足要求的答案就行了. #include <iostream> using namespace std; const int INF = 1000002; bool f[INF]

SGU 231 Prime Sum 求&lt;=n内有多少对素数(a,b)使得a+b也为素数 规律题

题目链接:点击打开链接 题意: 求<=n内有多少对素数(a,b)使得a+b也为素数 思路: 我们发现所有素数间隔都是>=2的,且除了2都是奇数,那么: 奇数+奇数 = 偶数. 所以只有一种情况2+素数=素数. 所以打个素数表,看一下有多少个素数和前面那个素数间隔是2的. #include <stdio.h> #include <string.h> #include <iostream> #include <math.h> #include <

hdu 2615 Division(暴力)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2615 题解:挺简单的暴力枚举,小小的分治主要是看没人写题解就稍微写一下 #include <iostream> #include <cstring> #include <cstdio> #include <algorithm> using namespace std; typedef long long ll; ll a[123] , ans , sum[123

[1008]harder_prime

素数定义:一个大于1的整数,如果它的约数如果只有1和它本身,那么它就是一个素数. 回文数定义:一个整数把它的各位数字倒过来还是它本身,那么它就是回文数,比如说2,99,393. 回文素数定义:一个数如果既是素数,也是回文数,那么我们就称它为回文数,比如说:7,11,131. 现在我们有n个数,需要你判断它们是不是回文素数. [输入格式] 第一行仅一个数n(n<100),为要判断的数的个数. 接下来n行,每行有一个数x(x<1,000,000,000),即为要你判断的数. [输出格式] 共有n行

bzoj 3998

后缀自动机上dfs,查询第k大子串 注意代码复杂度,可以不需要加边,写简洁的代码 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 using namespace std; 6 #define maxn 1000020 7 8 struct node{ 9 int val,pnt,size,degree; 10 int next[27]; 1

NOIP2003 侦探推理

题二    侦探推理 [问题描述] 明明同学最近迷上了侦探漫画<柯南>并沉醉于推理游戏之中,于是他召集了一群同学玩推理游戏.游戏的内容是这样的,明明的同学们先商量好由其中的一个人充当罪犯(在明明不知情的情况下),明明的任务就是找出这个罪犯.接着,明明逐个询问每一个同学,被询问者可能会说:       证词中出现的其他话,都不列入逻辑推理的内容. 明明所知道的是,他的同学中有N个人始终说假话,其余的人始终说真. 现在,明明需要你帮助他从他同学的话中推断出谁是真正的凶手,请记住,凶手只有一个! [

tcpdump 命令参考手册

对于 tcpdump 的使用,大部分管理员会分成两类.有一类管理员,他们熟知 tcpdump 和其中的所有标记:另一类管理员,他们仅了解基本的使用方法,剩下事情都要借助参考手册才能完成.出现这种情况的原因在于, tcpdump 是一个相当高级的命令,使用的时候需要对网络的工作机制有相当深入的了解. 在今天的文章中,我想提供一个快速但相当实用的 tcpdump 参考.我会谈到基本的和一些高级的使用方法.我敢肯定我会忽略一些相当酷的命令,欢迎你补充在评论部分. 在我们深入了解以前,最重要的是了解 t

洛谷 P2573 [SCOI2012]滑雪

题目描述 a180285非常喜欢滑雪.他来到一座雪山,这里分布着M条供滑行的轨道和N个轨道之间的交点(同时也是景点),而且每个景点都有一编号i(1<=i<=N)和一高度Hi.a180285能从景点i 滑到景点j 当且仅当存在一条i 和j 之间的边,且i 的高度不小于j. 与其他滑雪爱好者不同,a180285喜欢用最短的滑行路径去访问尽量多的景点.如果仅仅访问一条路径上的景点,他会觉得数量太少.于是a180285拿出了他随身携带的时间胶囊.这是一种很神奇的药物,吃下之后可以立即回到上个经过的景点