根据题意我们可以知道每一项可以对 3 取模
这样的话 因为是前两项递推,所以最多有 3*3 种可能,所以9项之内就可以出现循环,
对于这种类型的题可以直接打表做
#include <iostream>
#include <cstdio>
#include <string>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <queue>
#include <vector>
#include <set>
#include <stack>
#include <map>
#include <climits>
using namespace std;
typedef long long ll;
const int maxn = 10000 + 7, INF = 0x3f3f3f3f;
int f[17] = {1, 2};
int a;
int main() {
for(int i = 2; i < 10; ++i)
f[i] = ( f[i-1] + f[i-2] ) % 3;
while(~scanf("%d", &a)) {
if(f[a%8] == 0) puts("yes");
else puts("no");
}
return 0;
}