E: 数列计算III
时间限制: 1 Sec 内存限制: 128 MB
题目描述
有一组序列的数是:1、2、9、33、126、477,……,请同学们认真观察数值的规律。现要求:指定项数为任意的N项,计算:
1)第N项的数据;
2)输出前N项数据的和。
输入
只有一行,包含1个整数N(其中3<=N<=15)为这个序列的项数。
输出
共有二行:
第一行为这个序列第N项的数据;
第二行为这个序列前N项的数据和。
样例输入
6
样例输出
477
648
解题思路
找规律:a3=(a1+a2)*3
模拟即可
AC代码
#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<cstring>
#include<vector>
#include<stack>
#include<sstream>
#include<queue>
#include<map>
#include<bitset>
#include<deque>
#define ll long long
ll a[20];
using namespace std;
int main()
{
int n;
cin>>n;
a[0]=1;a[1]=2;
ll sum=3;
for(int i=2;i<n;i++)
{
a[i]=3*(a[i-2]+a[i-1]);
sum+=a[i];
}
cout<<a[n-1]<<endl;
cout<<sum<<endl;
return 0;
}