转载声明:原文转自http://www.cnblogs.com/xiezie/p/5502918.html

JAVA语言实现:

拿到题目第一反应是简单地实现递归:

import java.util.*;

import java.io.*;

public class Main{

    public static void main(String[] arg){
Main m = new Main();
Scanner scan = new Scanner(new BufferedInputStream(System.in));
while(scan.hasNextInt()){
int a = scan.nextInt();
int b = scan.nextInt();
int n = scan.nextInt();
if(a==0&&b==0&&n==0){
break;
}
int result = m.f(a,b,n);
System.out.println(result);
}
scan.close();
} public int f(int a, int b ,int n){
int result = 0;
if(n>2){
result = (a*f(a,b,n-1) + b*f(a,b,n-2))%7;
}else{
result = 1;
}
return result;
}
}

在实现时 还是考虑到JVM能够递归的深度,所以报出Memory Limit Exceeded的错误   让我觉得很正常,而且实现上不优雅~

第二次是将递归改为循环  自我感觉良好  结果  报了Time Limit Exceeded的错误

一下让我措手不及~

import java.util.*;

import java.io.*;

public class Main{

    public static void main(String[] arg){
Scanner scan = new Scanner(new BufferedInputStream(System.in));
while(scan.hasNextInt()){
int a = scan.nextInt();
int b = scan.nextInt();
int n = scan.nextInt();
if(a==0&&b==0&&n==0){
break;
}
int result = 1;
int result1 = 1,result2;
if(n>2){
int m = n+1;
for(int i = 3 ; i != m ; i ++ ){
result2 = result1;
result1 = result;
result = (a*result1 + b * result2 )%7;
}
}
System.out.println(result);
}
scan.close();
}

最后还是得分析算法 - -

这个f(n)得出的数字 都在0-6,网上的说法是 A%7,B%7 所以49个数字一个周期

这个有考虑过  但是实现时 还是没去考虑这个 - -  还是太懒~

于是  代码实现上是

import java.util.*;

import java.io.*;

public class Main{

    public static void main(String[] arg){
Scanner scan = new Scanner(new BufferedInputStream(System.in));
while(scan.hasNextInt()){
int a = scan.nextInt();
int b = scan.nextInt();
int n = scan.nextInt();
if(a==0&&b==0&&n==0){
break;
}
int result = 1;
int result1 = 1,result2;
int i = 3;
int m = n%49 + 1;
if(m!=1&&m!=2){ while(i++<m){
result2 = result1;
result1 = result;
result = (a*result1 + b * result2 )%7;
}
}
System.out.println(result);
}
scan.close();
}
}

  

HDOJ-ACM1005(JAVA)的更多相关文章

  1. hdoj 1753 (Java)

    刚刚开始用Java,代码难免不够简洁. import java.math.BigDecimal; import java.util.Scanner; public class Main { publi ...

  2. Spark案例分析

    一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...

  3. HDOJ/HDU 2203 亲和串(简单的判断~Java的indexOf()方法秒)

    Problem Description 人随着岁数的增长是越大越聪明还是越大越笨,这是一个值得全世界科学家思考的问题,同样的问题Eddy也一直在思考,因为他在很小的时候就知道亲和串如何判断了,但是发现 ...

  4. HDOJ(HDU) 2192 MagicBuilding(用Java的Map做了下)

    Problem Description As the increase of population, the living space for people is becoming smaller a ...

  5. HDOJ(HDU) 2133 What day is it(认识下Java的Calendar类---日期类)

    Problem Description Today is Saturday, 17th Nov,2007. Now, if i tell you a date, can you tell me wha ...

  6. hdoj 1753 大明A+B 高精度/java

    大明A+B Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  7. hdoj 1002 A + B Problem II 高精度 java

    A + B Problem II Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  8. HDOJ 1009. Fat Mouse' Trade 贪心 结构体排序

    FatMouse' Trade Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  9. HDOJ 2317. Nasty Hacks 模拟水题

    Nasty Hacks Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Tota ...

  10. HDOJ 1326. Box of Bricks 纯水题

    Box of Bricks Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) To ...

随机推荐

  1. Substring的简单使用

    string myString = "测试一下函数Substring()是怎么用的"; //Substring()在C#中有两个重载函数 //分别如下示例 //如果参数为一个长整数 ...

  2. java三种工厂模式

    适用场合: 7.3 工厂模式的适用场合 创建新对象最简单的办法是使用new关键字和具体类.只有在某些场合下,创建和维护对象工厂所带来的额外复杂性才是物有所值.本节概括了这些场合. 7.3.1 动态实现 ...

  3. NSAssert使用摘抄

    #define NSAssert(condition, desc, ...) 只有条件condition满足,才会执行下一个语句,否则输出断言错误. 例如: NSAssert(1 != 2, @&qu ...

  4. protues仿真 51点亮点阵

    电路图 程序 /*============================== 点亮点阵心形 ================================*/ #include <REGX5 ...

  5. UIMenuController搭配UIPasteboard,执行拷贝-黏贴操作-b

    一.基本概念 UIKit框架中,可以直接执行拷贝黏贴操作的有:UITextView.UITextField和UIWebView,其他控件需要实现相关方法. 关于UIPasteboard ·黏贴板是ap ...

  6. winform 项目获取app.config 中appSettings节点数据

    <?xml version="1.0" encoding="utf-8" ?> <configuration> <configSe ...

  7. CSS3学习之 animation 属性

    发现animation这个新属性很有趣,在此学习,并整理下!  浏览器支持: Internet Explorer 10.Firefox 以及 Opera 支持 animation 属性: Safari ...

  8. 在Unity中高效工作(下)

    原地址:http://www.unity蛮牛.com/thread-20005-1-1.html Tips for Creating Better Games and Working More Eff ...

  9. HDU4527+BFS

    模拟BFS搜索 对于一个将要爆炸的点,可能同时由多个点引起. /* 模拟搜索过程 */ #include<stdio.h> #include<stdlib.h> #includ ...

  10. [Quick-x]制作新手引导高亮区域方法之二:裁剪模式

    demo下载:https://github.com/chenquanjun/Quick-x-HighlightArea 2.裁剪模式 (1)创建裁剪对象 , , ) --非高亮区域颜色 local b ...