HDU 1021 Fibonacci Again(数论)

来源:互联网 发布:淘宝aj旗舰店是正品吗 编辑:程序博客网 时间:2024/05/16 07:08

Description
给出一序列f(n)满足f(n)=f(n-1)+f(n-2),f(0)=7,f(1)=11,现在给出一些询问,每次询问输入n问f(n)是否能被3整除
Input
多组输入,每组用例占一行为一整数n,以文件尾结束输入
Output
对于每组用例,如果f(n)%3=0则输出yes,否则输出no
Sample Input
0
1
2
3
4
5
Sample Output
no
no
yes
no
no
no
Solution
直接求出这个序列不现实,因为f(n)只由f(n-1)和f(n-2)确定,而f(n)%3只有0~2三种情况,所以f(n)取值情况数最多不会超过3*3=9种,所以f(n)%3这个序列值的循环节最少为9,写出前9项发现只有f(2)和f(6)满足条件,所以对于任意n,只有n%8=2或者6时f(n)%3=0(序列从第0项开始)
Code

#include<cstdio>#include<iostream>using namespace std;int main(){    int n;    while(scanf("%d",&n)!=EOF)    {        if(n%8==2||n%8==6)            printf("yes\n");        else            printf("no\n");    }    return 0;}
0 0
原创粉丝点击