精华内容
下载资源
问答
  • public class Solution { public static int Fibonacci(int num){ if (num < 2){ return num; } return Fibonacci(num - 1) + Fibonacci(num - 2); } ... public static int FibonacciStack(int num){ ...
    public class Solution {
        public static int Fibonacci(int num){
            if (num <  2){
                return num;
            }
            return Fibonacci(num - 1) + Fibonacci(num - 2);
        }
    
        public static int FibonacciStack(int num){
            Stack<Integer> stack = new Stack<Integer>();
            stack.push(num);
            int res = 0;
            while (!stack.empty()){
                int data =  stack.pop();
                if (data < 2){
                    res = res + data;
                }else{
                    stack.push(data - 1);
                    stack.push(data - 2);
                }
            }
            return res;
        }
    
    
    
        public static void main(String[] args){
            System.out.println(FibonacciStack(15));
            System.out.println(Fibonacci(15));
        }
    }
    
    
    展开全文
  • public class Solution {public static int Fibonacci(int num){if (num return num;}return Fibonacci(num - 1) + Fibonacci(num - 2);}public static int FibonacciStack(int num){Stack stack = new Stack();...

    public class Solution {

    public static int Fibonacci(int num){

    if (num

    return num;

    }

    return Fibonacci(num - 1) + Fibonacci(num - 2);

    }

    public static int FibonacciStack(int num){

    Stack stack = new Stack();

    stack.push(num);

    int res = 0;

    while (!stack.empty()){

    int data =  stack.pop();

    if (data < 2){

    res = res + data;

    }else{

    stack.push(data - 1);

    stack.push(data - 2);

    }

    }

    return res;

    }

    public static void main(String[] args){

    System.out.println(FibonacciStack(15));

    System.out.println(Fibonacci(15));

    }

    }

    展开全文
  • Java模拟汉诺塔移位、阶乘、斐波那契数列操作 1.汉诺塔移位操作 package hanoi; import java.util.Scanner; /** * 汉诺塔 * @author wsz * @date 2018年1月20日 */ public class HanoiDemo { static int ...

    Java模拟汉诺塔移位、阶乘、斐波那契数列操作

    1.汉诺塔移位操作

    package hanoi;
    
    import java.util.Scanner;
    /**
     * 汉诺塔
     * @author wsz
     * @date 2018年1月20日
     */
    public class HanoiDemo {
    
    	static int count = 0;
    	/**
    	 * n=1 a->c
    	 * n=2 
    	 * 		|递归(1,a,c,b):a->b(1次) 结束递归 
    	 *  	|a->c(2次)  
    	 *  	|递归(1,b,a,c):b->c(3次) 结束递归 
    	 *  	|结束
    	 * n=3 
    	 * 		|递归(2,a,c,b) 与n=2一致(共三次)
    	 * 		|a->c(4次)
    	 * 		|递归(2,b,a,c) 与n=2一致(共三次)
    	 * n=*  总次数n^2-1
    	 * @param n 盘子数量
    	 * @param a 源位座
    	 * @param b 辅助座
    	 * @param c 目标座
    	 */
    	static void hanoi(int n, char a, char b, char c) {
    		if(n == 1) {
    			System.out.println("第"+(++count)+"次从"+a+"到"+c);
    		}else {
    			hanoi(n-1,a,c,b);  //将a上的n-1个移到b
    			System.out.println("第"+(++count)+"次从"+a+"到"+c); //将a上的最后一个移到c
    			hanoi(n-1,b,a,c);	//将b上的n-1个移到c
    		}
    	}
    	
    	public static void main(String[] args) {
    		Scanner input = new Scanner(System.in);
    		System.out.println("输入数量:");
    		int num = input.nextInt();
    		hanoi(num,'a','b','c');
    		input.close();
    	}
    
    }
    

    2.阶乘

    package hanoi;
    
    import java.util.Scanner;
    
    /**
     * 递归阶乘 n! = n*(n-1)*(n-2)*(n-3)*...*2*1
     * @author wsz
     * @date 2018年1月20日
     */
    public class Factorial {
    
    	/**
    	 * 递归解决
    	 * @param n
    	 * @return
    	 */
    	static long fact(long n) {
    		if(n <= 1) {
    			print(n);
    			return 1;
    		}else {
    			print(n);
    			return n*fact(n-1);
    		}
    	}
    	
    	/**
    	 * 循环解决
    	 * @param n
    	 */
    	static long fact2(long n) {
    		int i;
    		long res =1L;
    		for(i = 1; i <= n; i++) {
    			res *= i;
    		}
    		return res;
    	}
    	
    	static void print(long n) {
    		if(n <= 1)
    			System.out.print(n);
    		else
    			System.out.print(n+"*");
    	}
    	
    	public static void main(String[] args) {
    		System.out.println("输入需要阶乘的数字:");
    		Scanner input = new Scanner(System.in);
    		int num = input.nextInt();
    		long fact = fact(num);
    		
    		System.out.println("");
    		System.out.println(fact);
    		System.out.println(fact2(num));
    		input.close();
    	}
    
    }
    

    3.斐波那契数列

    package hanoi;
    
    import java.util.Scanner;
    
    /**
     * 菲波那切数列:1+1+2+3+5+8+13+...
     * @author wsz
     * @date 2018年1月20日
     */
    public class Fibonacci {
    
    	/**
    	 * 获取某一下标位置的值
    	 * @param n
    	 * @return
    	 */
    	static long fib(long n) {
    		if(n <= 2 ) {
    			return 1;
    		}else {
    			return fib(n-1)+fib(n-2); //返回之前2个数字的求和
    		}
    	}
    	
    	/**
    	 * 进行求和
    	 * @param n
    	 * @return
    	 */
    	static long fib2(long n) {
    		int i;
    		long res =0L;
    		String str = "";
    		for(i = 1; i <= n; i++) {
    			long fib = fib(i);
    			res += fib;
    			str += String.valueOf(fib)+"+";
    		}
    		System.out.println(str.substring(0, str.length()-1)+"="+res);
    		return res;
    	}
    	
    	public static void main(String[] args) {
    		System.out.println("获取斐波那契数的下标位置:");
    		Scanner input = new Scanner(System.in);
    		int num = input.nextInt();
    		long fib = fib(num);	//获取下标位置的值
    		System.out.println(fib);
    		System.out.println(fib2(num)); //进行求和输出
    		input.close();
    	}
    
    }
    




    展开全文
  • 今天争取每天更新一篇剑指offer的算法题,算是做笔记,也算是督促自己学习,今天先做一个最简单的斐波那契数列。 斐波那契题目大家都很熟悉了,最基本的方法是用递归。但是递归意味着要消耗...一开始,我们用num1模拟

    今天争取每天更新一篇剑指offer的算法题,算是做笔记,也算是督促自己学习,今天先做一个最简单的斐波那契数列。

    斐波那契题目大家都很熟悉了,最基本的方法是用递归。但是递归意味着要消耗大量的空间,所以这里尝试用循环的方式去解决。

    先直接放代码

    这里代码的重点就是用while循环去做相当与递归的操作。直接拿斐波那契数列的前几项举例说明:

    0,1,1,2,3,5

    一开始,我们用num1模拟的是第三项上的1,num2模拟的是第二项上的1。在while循环中,num1的作用是成为我们要求的斐波那契的第n项,而num2则是要成为第n-1项。

    理解了这个循环,这道题就可以解决

    展开全文
  • 算法和数据操作 • 递归和循环: 很多算法可以用递归和循环两种不同方式实现。 通常基于递归的实现方法代码会比较...如果限定不可以用递归,考虑用栈来模拟。 • 动态规划: 求某个问题的最优解,并且该问题可以分为...
  • Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 4306 Accepted Submission(s): 1634 Problem Description You will be given a
  • 【写在前面】今天java考试,抽到了一道生兔子的问题,刚开始是想用结构体来对这个过程进行模拟,然而发现自己知识掌握的也并不是很扎实,实现过程也很复杂,所以放弃了。后来仔细观察了一下,再推导几个月兔子的数目...
  • hdu1316(大数的斐波那契数)

    千次阅读 2014-10-21 21:07:15
    题目信息:求两个大数之间的斐波那契数的个数(C++/JAVA) http://acm.hdu.edu.cn/showproblem.php?pid=1316 这里给出java大数类代码和c++模拟代码
  • 主要介绍了Java线程池的应用,结合具体实例形式分析了java线程池的斐波那契数列计算与模拟工人做工等应用的操作技巧,需要的朋友可以参考下
  • 题目信息、 hdu1715 给出n求出第n个斐波那契数(可能很大) ... AC代码: ... *大数专题,可以用java大整数类Biginteger,这里仅给出C++的模拟大数加法。  */ #include #include using namespace std; st
  • ADV-99 算法提高 栅格打印问题(模拟)ADV-126 算法提高 扫雷(模拟)ADV-302 算法提高 秘密行动(dp)ADV-305 算法提高 输出二进制表示(API)ADV-327 算法提高 研究兔子的土豪(斐波那契循环节) ADV-99 ...
  • RabbitMQ实现RPC(java)

    千次阅读 2017-11-28 18:34:01
    我们将创建一个返回斐波那契数字的模拟RPC服务。整个过程示意图如下: 客户端将请求发送至rpc_queue(我们定义的消息队列),然后等待响应;服务端获取请求,并处理请求,然后将请求结果返回给队列,客户端得知...
  • 站在任务分工的并发场景及解决方案2."分治"任务模型3.Fork/Join的使用3.Fork/Join实现斐波那契数列4.ForkJoinPool工作原理4.模拟 MapReduce 统计单词数量5.注意 1.站在任务分工的并发场景及解决方案 前面我们站在...
  • 识别问题等价于斐波那契的n项和n+1项的比值,2.n要多少才够,3.怎么处理很大的数和精度要求很高的浮点数 05 有理数类 面向对象+分数加法(通分与约分) 06 三部排序 快速排序(三指针区间法)变体;极限思维(考虑...
  • 6.4.2 事件模拟 6.5 d-堆 6.6 左式堆 6.6.1 左式堆性质 6.6.2 左式堆操作 6.7 斜堆 6.8 二项队列 6.8.1 二项队列结构 6.8.2 二项队列操作 6.8.3 二项队列的实现 6.9 标准库中的优先队列 小结 练习 ...
  • 6.4.2事件模拟165 6.5d—堆166 6.6左式堆167 6.6.1左式堆性质167 6.6.2左式堆操作168 6.7斜堆172 6.8二项队列173 6.8.1二项队列结构174 6.8.2二项队列操作174 6.8.3二项队列的实现176 6.9标准库中的优先...
  • 1)类结构.|____BaseTask.java 任务抽象类,具体的任务都要继承它|____TaskHandlerContext.java 单例的任务执行类|____Fabi.java 斐波那契计算工具类|____FabiTask.java 一个具体的任务: 执行斐波那契|____Main.java...
  • |____Main.java 主类,模拟收到的任务 2)思路 把收到的数据都封装为一个Task,然后自增任务id,不断的去添加任务到线程的任务队列,然后任务被消耗不断执行即可。 任务队列是一个阻塞队列,一个任务执行完毕..
  • hdu1316 大数

    2014-05-11 20:54:49
    题意:  给你一个区间,问这个区间有多少个斐波那契数. 思路:  水的大数,可以直接模拟,要是懒可以用JAVA,我模拟的,打表打到1000个就足够用了...
  • hdu1316 水大数

    2014-04-08 18:58:16
    题意:  给你一个区间,问这个区间有多少个斐波那契数. 思路:  水的大数,可以直接模拟,要是懒可以用JAVA,我模拟的,打表打到1000个就足够用了...
  • 思路:因为数据规模达到了10^100,所以必须要用大数, 直接用java的大数应该能比较快的A掉,这里我用的是C++ 模拟。 第一步,将斐波那契数 打表,因为增长速度很快,10^100级别的斐波那契数 大概在数列的500左右的...
  • 2.1 简单模拟 30 2.2 进制转换类问题 32 2.3 排版类问题 37 2.4 日期类问题 42 2.5 字符串类问题 45 2.6 排序类问题 47 2.7 查找类问题 54 2.8 贪心类问题 61 2.9 链表类问题 65 第三章 数学 68 3.1 同模...

空空如也

空空如也

1 2
收藏数 22
精华内容 8
关键字:

java模拟斐波那契

java 订阅