zoj 2060 Fibonacci Again(SO水。。。)

这么水的题不好意思贴出来了都。。。在图书馆看的,当时很有用手机把代码打出来的冲动。。。不长啊。。

 

这个题和上一道题基本是差不多的,求这种斐波那契数列的第n个数是否能被3整除。

 

依旧找规律。

 

根据同余xx规则,对加法封闭,算是这个吧。。。如果能被3整除,必定余数为0。而且这个余数有规律,以1,2,0,2,2,1,0,1,循环。

 

如果为0则说明除三余数为0,输出YES,反之输出NO。。。

 

直接弄成n%8 == 2 || n%8 == 6? cout << "yes" : cout << "no";也行。。不过运行时间都蛮长的,0ms的是咋过的啊。。。郁闷。。

 

刚搜了下代码。。。强人的代码。。。。可以打表。。。这个就随意了点。。。就是才100W的表。。。还有其他方法。。。

 

http://www.cppblog.com/blueslee/archive/2010/09/28/127963.html?opt=admin

 

这个是我运行380ms的代码。。

 

#include <stdio.h> #include <stdlib.h> #include <iostream> using namespace std; int main(void) { int a[6] = { 1,2,0,2,2,1,0,1 }; int n; while( cin >> n ) { a[n%6] == 0 ? cout << "no" : cout << "yes"; cout << endl; } return 0; }  

你可能感兴趣的:(zoj 2060 Fibonacci Again(SO水。。。))