鱼C论坛

 找回密码
 立即注册
查看: 2007|回复: 9

[已解决]200鱼币悬赏!!!如何将问题中的循环转换成递归??

[复制链接]
发表于 2022-4-6 21:57:49 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 清芷在沅湘 于 2022-4-6 22:37 编辑
import java.util.Scanner;

public class Puzzle{
        public static void main(String[] args){
                Scanner input = new Scanner(System.in);
                System.out.print("请输入n的值:");
                int n = input.nextInt();
                int i;
                double last = n;
                for (i = n;i > 0;i--){
                         last = i-1 + 1.0/last;
                }
                System.out.println("答案是" + last);
        }
}
如何将图中的循环转换成递归??
最佳答案
2022-4-6 23:10:15
200鱼币结贴吧
        public static double myLast(double n ,double l) {
                if (n==1){ // 结束条件
                        return n-1+1.0/l;
                }else {
                        
                        return myLast(n-1, n-1+1.0/l); //递归
                }
        }
7.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-4-6 22:58:19 | 显示全部楼层
/*
import java.util.Scanner;

public class main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.print("请输入n的值:");
        int n = input.nextInt();
        int i;
        double last = n;
        for (i = n; i > 0; i--) {
            last = i - 1 + 1.0 / last;
        }
        System.out.println("答案是" + last);
      }
}
*/

import java.util.Scanner;

public class Puzzle2{
    public static double calc(int n, double last) {
        if(n <= 0) return last;
        return calc(n - 1, n - 1 + 1.0 / last);
    }
    public static void main(String args[]) {
        Scanner input = new Scanner(System.in);
        System.out.print("请输入n的值: ");
        int n = input.nextInt();
        System.out.println("答案是: " + calc(n, n));
        input.close();
    }
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-6 22:10:23 | 显示全部楼层

回帖奖励 +40 鱼币

抢沙发
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-6 22:22:21 | 显示全部楼层

回帖奖励 +40 鱼币

是指for循环吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-4-6 22:27:27 | 显示全部楼层

这不已经是for循环了吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-6 23:05:03 | 显示全部楼层

回帖奖励 +40 鱼币

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-4-6 23:08:14 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-6 23:10:15 | 显示全部楼层    本楼为最佳答案   

回帖奖励 +40 鱼币

200鱼币结贴吧
        public static double myLast(double n ,double l) {
                if (n==1){ // 结束条件
                        return n-1+1.0/l;
                }else {
                        
                        return myLast(n-1, n-1+1.0/l); //递归
                }
        }
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-7 00:36:25 | 显示全部楼层

回帖奖励 +40 鱼币

666666666
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-7 08:14:16 | 显示全部楼层
好高级,学习学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-7-8 12:52

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表