杭电acm2018 母牛的故事 Java解法 经典递归

简介: 杭电acm2018 母牛的故事 Java解法 经典递归


标准递归题

先模拟 接着找递归出口 再找递归通式

想想看

今天的母牛等于前一天的母牛数加上今天出生的母牛

而三天前的母牛所有母牛都能生一头

import java.util.Scanner;
 
public class Main {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        long i;
        while((i= sc.nextInt())!=0){
            System.out.println(rec(i));
        }
    }
    public static int rec(long i){
        
        //递归出口
        if(i==1)return 1;
        if(i==2)return 2;
        if(i==3)return 3;
        if(i==4)return 4;
        
        //递归关系式
        return rec(i-1)+rec(i-3);
    }
}
目录
打赏
0
0
0
0
38
分享
相关文章
Java面试高频题:用最优解法算出2乘以8!
本文探讨了面试中一个看似简单的数学问题——如何高效计算2×8。从直接使用乘法、位运算优化、编译器优化、加法实现到大整数场景下的处理,全面解析了不同方法的原理和适用场景,帮助读者深入理解计算效率优化的重要性。
73 6
|
7月前
|
java基础(11)函数重载以及函数递归求和
Java支持函数重载,即在同一个类中可以声明多个同名方法,只要它们的参数类型和个数不同。函数重载与修饰符、返回值无关,但与参数的类型、个数、顺序有关。此外,文中还展示了如何使用递归方法`sum`来计算两个数之间的和,递归的终止条件是当第一个参数大于第二个参数时。
53 1
java基础(11)函数重载以及函数递归求和
|
8月前
|
LeetCode经典算法题:矩阵中省份数量经典题目+三角形最大周长java多种解法详解
LeetCode经典算法题:矩阵中省份数量经典题目+三角形最大周长java多种解法详解
97 6
LeetCode经典算法题:井字游戏+优势洗牌+Dota2参议院java解法
LeetCode经典算法题:井字游戏+优势洗牌+Dota2参议院java解法
89 1
LeetCode经典算法题:预测赢家+香槟塔java解法
LeetCode经典算法题:预测赢家+香槟塔java解法
108 1
|
9月前
|
java使用递归及迭代方式实现前序遍历 中序遍历 后序遍历 以及实现层序遍历
java使用递归及迭代方式实现前序遍历 中序遍历 后序遍历 以及实现层序遍历
121 7
|
8月前
|
LeetCode初级算法题:环形链表+排列硬币+合并两个有序数组java解法
LeetCode初级算法题:环形链表+排列硬币+合并两个有序数组java解法
92 0
LeetCode初级算法题:两数之和+斐波拉契数列多种java解法
LeetCode初级算法题:两数之和+斐波拉契数列多种java解法
77 0
|
10月前
|
java实现斐波那契数列(递归、迭代、流)
java实现斐波那契数列(递归、迭代、流)
106 1
|
10月前
|
Java基础手册(标识符 关键字 字面值 变量 数据类型 字符编码 运算符 控制语句 方法及方法重载和递归 面向对象与面向过程)
Java基础手册(标识符 关键字 字面值 变量 数据类型 字符编码 运算符 控制语句 方法及方法重载和递归 面向对象与面向过程)
71 0