Counter Attack
时间限制(普通/Java) : 1000 MS/ 2000 MS 运行内存限制 : 65536 KByte
总提交 : 440 测试通过 : 74
在累加的过程中a[i]的值可能会很大,比如说当牌数等于50的时候,要注意把数组数据类型声明为int 64位的,或者long long int。
总提交 : 440 测试通过 : 74
题目描述
(题名来源:2013年校队出战南京邀请赛曾用队名)
逆袭(Counter Attack)什么的,是必须的,不逆袭,不算活过。DS为逆袭,求教神预言家Master Yu。预言家一听是DS想逆袭,心中一叹曰“喜闻乐见”,随即铺开一列塔罗牌,对DS说:你可以从这列塔罗牌中取走任意多个,但是,不能取走相邻的牌,因为相邻的牌是相刑的,会带来一生孤独运。预言家说完,抬手转身出门而去,远处传来上帝的声音:“若你能找出所有的可行取法,百日内必可被逆推!”
请问,到底有多少种可行的取法呢?
输入
第一行包含一个正整数T (1≤T≤10),表示有T组测试用例。
每组用例包含一行,仅一个正整数n (1≤n≤50),表示这列塔罗牌有n张。
输出
每组用例输出一行,仅包含一个整数,即满足规则的可行取法数。
样例输入
1
5
样例输出
13
#include<iostream> #include<stdio.h> #include<stdlib.h> #include<cstdio> using namespace std; int T; const int N=100; int main() { scanf("%d",&T); while(T--) { int n; int64_t a[N]; scanf("%d",&n); a[1]=2; a[2]=3; a[3]=5; for(int i=4;i<=50;i++) { a[i]=a[i-2]+a[i-1]; } printf("%I64d ",a[n]); } return 0; }
在累加的过程中a[i]的值可能会很大,比如说当牌数等于50的时候,要注意把数组数据类型声明为int 64位的,或者long long int。
版权声明:本文为博主原创文章,未经博主允许不得转载。