HDU ACM Fibonacci Again 解题报告
来源:互联网 发布:世界博览怎么样知乎 编辑:程序博客网 时间:2024/06/01 17:02
我是个没有耐心的人,曾经玩过acm,不过感觉太无聊就没在继续,现在趁学校有专门开这个课,就把它继续下去,当年没解决的好多题目现在都能够懂了,比如说这个,当年就是在这个题解不出并且看不懂别人的结题报告以后放弃的(最主要的是代码简洁的太销魂)。现在来详细解释一番,希望自己记住并对ACM新手有所帮助(加油啊,各位)。
Fibonacci Again
Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other)
Total Submission(s) : 40 Accepted Submission(s) : 21
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.
Print the word "no" if not.
Sample Input
012345
Sample Output
nonoyesnonono
Author
Leojay
刘春英老师PPT的提示:
能被3整除的整数的特点?
如果两个数的和能被3整除,这两个数有什么特点?
关于“和”能否被3整除,这两个数一共有多少种组合?
会不会出现某连续两项和后面连续两项相等的情况?如果出现,能得到什么信息?
可以先思考一下上面的问题,(上课这个都是跳过的,我都没怎么懂)
解析:
有个很重要的公式f(n)%3=(f(n-1)%3+f(n-2)%3)%3
这个公式带几个数字进去就可以理解了,我也就不多说了
一般n的数值可以取到如此之大可以见得一定有规律
先列个表吧
n0 1 2 3 45 6 7 8 9
f(n)7 11 18 29 4776 123 199 322 521
f(n)%31 2 0 2 21 0 1 1 2
现在要找出其中的规律
因为斐波那契数是n位置的数等于它前面的两个数之和,
再运用上面的公式可以得到n位置的数除以3的余数等于前面两个数除以三的余数再除以三
所以f(n)%3那行只要重复出现1,2就表明已经重复了(后面那个数都是n=2和n=10都是(1+2)%3,同理可得后面的值都依次重复下去)
有些人会说万一规律在100次以后出现那不是惨了,
其实不是因为3的余数只有0,1,2,排列组合一些只有9种可能,因此规律在9次以后一定出现
如果类似的题目数值实在太大就只能写一段程序去寻找规律了。
根据表可以看出每8次循环一次,因此n%8=2或者6的时候值可以被3整除。
现在看一下代码,是否就一目了然了呢
#include<stdio.h>int main(){ long n; scanf("%ld",&n) ; if (n%8==2 || n%8==6) printf("yes\n"); else printf("no\n"); return0;}
1 0
- HDU ACM Fibonacci Again 解题报告
- Fibonacci Again解题报告
- ACM HDU 1021 Fibonacci Again
- HDOJ 1021 Fibonacci Again解题报告
- 解题报告 之 POJ1021 Fibonacci Again
- YT02-简单数学课堂题-1004 Fibonacci Again -(5.31日-烟台大学ACM预备队解题报告)
- HDU ACM Steps解题报告
- ACM 1021 Fibonacci Again
- acm hdu p1021 Fibonacci Again java解答 水水 找规律
- Fibonacci again and again HDU
- HDU 1021 Fibonacci Again
- HDU 1021 Fibonacci Again
- HDU 1021 Fibonacci Again
- hdu 1021 Fibonacci Again
- hdu 1021 Fibonacci Again
- HDU 1021 Fibonacci Again
- HDU 1021 Fibonacci Again
- HDU 1201 Fibonacci Again
- 外链建设
- 八大排序算法
- 树形数据生成XML
- 初学计算机
- 后台开发学习
- HDU ACM Fibonacci Again 解题报告
- Java Socket编程
- 九大排序算法再总结
- 算法导论32(字符串匹配)
- myeclipse下安装maven的方法
- linux中ssh应用以及错误
- 程序员之路——一个老程序员对刚上大学的学弟学妹的忠告
- 初识javascript
- 线性判别分析LDA详解