您的位置:首页 > 编程语言 > Java开发

杭电ACM 1021题

2016-07-13 20:18 405 查看
一,题目的意思,就是F(0)=7,F(1)=11, F(n)=F(n-1)+F(n-2), (n>=2)

求F(n)能否被3整除,如果能被3整除的话,则直接输出yes,不能被3整除的话,直接输出no

二,解题思路,不能使用递归,否则超时

可以发现规律,就是F(n)以4为一个周期,依次循环。所以不要用递归来做这题。有时候可以看看其他巧妙的解题思路。

F(0)=7 NO

F(1)=11 NO

F(2)=18 YES

F(3)=29 NO

F(4)=47 NO

F(5)=73 NO

F(6)= 120 YES

F(7)=193 NO

三 ,用java实现程序 已经AC了的

import java.util.Scanner;
public class Main{
public static void main(String [] args)
{
Scanner scan=new Scanner(System.in);
int n;
while(scan.hasNext())
{
n=scan.nextInt();
n=n%4;
if(n==0)
{
System.out.println("no");
}
else if (n==1)
{
System.out.println("no");
}
else if (n==2)
{
System.out.println("yes");
}
else if (n==3)
{
System.out.println("no");
}
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  杭电 acm 算法 java