杭电ACM--HDU-1021斐波拉契

来源:互联网 发布:htc手机数据连接不上 编辑:程序博客网 时间:2024/06/01 23:01

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1021


题目大意是:已知 F(0) = 7, F(1) = 11, F(n) = F(n-1) + F(n-2) (n>=2);如果F(n)%3的值为0,则输出“yes”,否则输出“no”


这个题目主要是找规律,找到规律就很简单。我们可以先求出前面几个数除以3的余数,然后得知其余数分别为1,2,0,2,2,1,0,1,1,2,0

,从中我们可以得出一个规律:其余数每八个为一轮,当余数为0时,说明F(n)可以整除3,在F(0)到F(7)的一个轮回中只有F(2)和F(6)

符合条件。


代码如下:

#include<iostream>using namespace std;int main(){int n;while(cin>>n&&n<1000000){if(n%8==2 ||n%8==6)cout<<"yes"<<endl;elsecout<<"no"<<endl;}return 0;}

0 0