ZOJ ACM 2060(JAVA)
来源:互联网 发布:计算机服装排版软件 编辑:程序博客网 时间:2024/06/06 09:08
题目描述请参考:ZOJ ACM 2060
1)难度分析
由于N较大,为1000000,如果用递归中规中矩的计算结果后再判断是否被3整除肯定超时且费内存。
2)解决方法
f(0) %3 = 1; f(1) %3 = 2; f(2) % 3 = 0;...
通过简单观察,可以发现这是有规律的,因为3比较小,所以并不需要太久即可完成一个循环。从而根据N直接判断是否可被3整除。
结果如下:
f(0) % 3 = 1; f(1) % 3 = 2; f(2) % 3 = 0; f(3) % 3 = 2; f(4) % 3 = 2; f(5) % 3 = 1; f(6) % 3 = 0; f(7) % 3 = 1;
f(8) % 3 = 1; f(9) % 3 = 2; f(10) % 3 = 0;...
由此可以知道当f(n)的n为8的倍数,即可完成一次循环。其中n%8=2和6的时候,f(n)%3=0;
3)AC 源码
public class Main {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubjava.util.Scanner scanner = new java.util.Scanner(System.in);while(scanner.hasNext()) {long N = Integer.parseInt(scanner.nextLine());System.out.println(canDivEvenlyByThree(N));}}public static String canDivEvenlyByThree(long n) {if(n % 8 == 2 || n % 8 == 6)return "yes";return "no";}}
0 0
- ZOJ ACM 2060(JAVA)
- ZOJ ACM 1204 (JAVA)
- ZOJ ACM 2022(JAVA)
- ZOJ ACM 1314(JAVA)
- ZOJ ACM 1610(JAVA)
- zoj 1001纪念我的第一个java ACM题
- zoj acm 1205
- [ACM] ZOJ 1205
- [ACM] ZOJ 1057
- [ACM] ZOJ 1115
- 浙大ACM-ZOJ 1049
- 浙大ACM-ZOJ 1115
- 浙大ACM-ZOJ 1558
- zoj acm Word Reversal
- ACM-ZOJ 1037
- ACM-ZOJ 1145 回溯
- 浙大ACM-ZOJ 2058
- ACM-ZOJ 2110 DFS
- 最大流Edmonds-Karp模板
- LeetCode OJ - Binary Tree Zigzag Level Order Traversal
- sql中charindex的使用
- 用Scala做并行计算
- 黑马程序员-(文章的名字)
- ZOJ ACM 2060(JAVA)
- 在数组中插入一数字,然后从大到小输出。但是结果总是不对,求大神指导
- Android ADB server didn't ACK * failed to start daemon * 简单有效的解决方案
- Ubuntu12.04安装Qt4.8集成开发环境(QtCreator)
- LeetCode-Permutations
- linux的运行级别与自动启动
- map-reduce的八个流程
- Django站点之找回密码功能
- JDK里面的设计模式