题目描述
有n盒巧克力排成一列,盒子里的巧克力数刚好满足斐波那契数列:1,1,2,3,5,8……。
现要把这n盒巧克力分成两堆,使得两堆的巧克力数相等,可以做到吗?如果可以就输出“yes”,否则就输出“no”。注意:盒子不能拆开。
输入格式
第一行一个数R,表示有R组数据。R<=5
接下来有R行,每行一个数n。n<=1000。
输出格式
共R行,分别是yes或no
输入/输出例子
输入:
3
16
27
567
输出:
no
yes
yes
思路
硬枚举
具体程序
#include<bits/stdc++.h>
using namespace std;
long long n,L,a,b,c,r;
int main(){
cin>>r;
for(int i=1;i<=r;i++)
{
cin>>n;
a=1,b=1;
for(int j=1;j<=n-2;j++)
{
c=a+b;
a=b;
b=c;
L+=c;
}
cout<<((L%2==0)?"yes":"no")<<endl;
L=0;
}
return 0;
}
给个免费的赞呗。