码迷,mamicode.com
首页 > 其他好文 > 详细

HDU 1021 Fibonacci Again 数学题

时间:2016-02-03 11:44:53      阅读:137      评论:0      收藏:0      [点我收藏+]

标签:

Problem Description
There are another kind of Fibonacci numbers: F(0) = 7, F(1) = 11, F(n) = F(n-1) + F(n-2) (n>=2).
 
Input
Input consists of a sequence of lines, each containing an integer n. (n < 1,000,000).
 
Output
Print the word "yes" if 3 divide evenly into F(n).
Print the word "no" if not.
 
Sample Input
0
1
2
3
4
5
 
Sample Output
no
no
yes
no
no
no
 
题目意思很简单,给你一个类似于斐波那切数列的数列,询问你第n个数是否是3的倍数。
首先先看数据范围n<1000000,一看就知道模拟不能过。
所以就开始枚举找规律。
位置 0 1 2 3 4 5 6
数值 7 11 18 29 47 76 123
对三取模后的值 1 2 0 2 2 1 0
 
 
 
 
 
然后发现第2个和第6个取模的值是一样的,于是就想是不是一个周期函数呢,继续枚举发现好像是,那么代码就非常简单了。
代码如下:
 1 #include<cstdio>
 2 #include<cmath>
 3 #include<cstring>
 4 #include<iostream>
 5 using namespace std;
 6 int main(){
 7     int n;
 8     while(scanf("%d",&n)!=EOF)
 9     {
10         n=n+2;
11         if (n%4==0)
12         printf("yes\n");
13         else
14         printf("no\n");
15     }
16     return 0;
17 }

 

HDU 1021 Fibonacci Again 数学题

标签:

原文地址:http://www.cnblogs.com/fakerv587/p/5179255.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!