杭电ACM OJ 1021 Fibonacci Again 斐波那次数列 发现规律 简化操作
来源:互联网 发布:数据挖掘 股票预测 编辑:程序博客网 时间:2024/05/29 07:05
Fibonacci Again
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 64800 Accepted Submission(s): 30092
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翻译:就是这个公式,用递归取做。给一个数字代表求出这个公式的第几位即f(5)比如说。再判断能否整除3,如果可以,输出yes核心:直接硬做也可以做出来,不过可能超时。我们需要找到规律。第一位7,第二位11.可以看成3+43+4+4加起来就是3+3+4+4+4其目的是整除3可以看成44 44 4 4再进一步11 11 1 1就是12358这种规律。很方便就可以求出来上代码//找规律法int circle2(int n) { int sum = 0; if (n == 0) { return 1; } if (n == 1) { return 2; } return circle2(n - 1) + circle(n - 2);}boolean getResult2() { int result = circle2(this.n); return isOk(result);}下面贴上包含笨办法的完整代码public class FibonacciAgain1021 { int n; FibonacciAgain1021(int n) { this.n = n; } //递归:暴力法,不过应该超时 int circle(int n) { if (n == 0) { return 7; } if (n == 1) { return 11; } int num; num = circle(n - 1) + circle(n - 2); return num; } boolean isOk(int result) { return (result % 3) == 0; } boolean getResult() { int result = circle(this.n); return isOk(result); } //找规律法 int circle2(int n) { int sum = 0; if (n == 0) { return 1; } if (n == 1) { return 2; } return circle2(n - 1) + circle(n - 2); } boolean getResult2() { int result = circle2(this.n); return isOk(result); } public static void main(String[] args) throws Exception { FibonacciAgain1021 fibonacciAgain1021 = new FibonacciAgain1021(2);//3在试一下 boolean result = fibonacciAgain1021.getResult2(); System.out.println(result + ""); }}(一个acm题,你必须先用暴力法去试试,如果连暴力法都不会,就不要谈更高级优雅的方法了。就算侥幸套算法框架套出来了,对他的理解依然只有皮毛而已)
阅读全文
0 0
- 杭电ACM OJ 1021 Fibonacci Again 斐波那次数列 发现规律 简化操作
- 杭电oj 题目1021Fibonacci Again
- 杭电ACM 1021 Fibonacci Again
- 杭电acm 1021 Fibonacci Again
- 杭电OJ Fibonacci Again
- 杭电hdu1021 Fibonacci Again 找规律
- HDU 1021 Fibonacci Again(斐波那契数列+mod规律)
- 杭电1021 Fibonacci Again
- 杭电1021 Fibonacci Again
- 杭电1021 Fibonacci Again
- 杭电1021Fibonacci Again
- 杭电 1021 Fibonacci Again
- 杭电1021——Fibonacci Again(找规律、简单题)
- [杭电]Fibonacci Again
- ACM 1021 Fibonacci Again
- 杭电水体--Fibonacci Again 1021
- 杭电 HDU 1021 Fibonacci Again
- HDU-1021-Fibonacci Again ( 找规律 + Fibonacci )
- 2017 年度 Linux 内核开发报告
- 面向对象:心动不是爱情,心定才是爱
- 关于APK的签名
- 【notepad++】更换主题
- 一个略微有趣的platform game
- 杭电ACM OJ 1021 Fibonacci Again 斐波那次数列 发现规律 简化操作
- 使用ShellExcete打开pdf文件。请问大侠这段程序错误出现在哪儿?该怎么改正确?
- Codeforces Round #446(div 2) C. Pride
- 常见web漏洞——启动了不安全的HTTP方法解决办法
- 为所欲为之API兼容-Runtime消息转发
- 再次制作小游戏
- SQLException: Invalid parameter object type. Expected 'java.util.ArrayList' but found 'java.util.Ar
- Linux下10个常用的SSH命令选项
- mapreduce集群的搭建及安装