HDOJ1021 Fibonacci Again

来源:互联网 发布:ps -ef|grep命令 linux 编辑:程序博客网 时间:2024/06/05 04:16

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


这个题最坑的莫过于范围了,开始用long,测试了下,发现很快就超范围了。

然后想着使用大数,考虑到时间的限制,再次测试了结果,发现有规律。

规律自己看:

no
no
yes
no
no
no
yes
no
no
no
yes
no
no
no
yes

怎么样,够明显的了。然后就可以使用打表的方式来做,打表打的是boolean。

使用count 来计算第几个。

下面AC代码:

import java.util.Scanner;public class Main{private static Scanner scanner;private static boolean boo[];public static void main(String[] args) {scanner = new Scanner(System.in);dabiao();while (scanner.hasNext()) {int n = scanner.nextInt();if (boo[n]) {System.out.println("yes");} else {System.out.println("no");}}}public static void dabiao() {boo = new boolean[1000000];boo[0] = false;boo[1] = false;int count = 0;for (int i = 2; i < boo.length; i++) {if (count == 0) {boo[i] = true;} else {//else可以省略,默认是falseboo[i] = false;}count++;if (count == 4) {count = 0;}}}}


原创粉丝点击