为了账号安全,请及时绑定邮箱和手机立即绑定

我需要帮助将算法转换为 java

我需要帮助将算法转换为 java

牧羊人nacy 2021-06-16 13:09:38
Algorithm fibIterative(integer num){ set i to 1 set j to 0 for (k = 1 to num) { set j = i + j set i = j - i  } return j}我知道我的 for 循环是错误的,但我不知道如何使它正确。希望有人可以帮助我。提前致谢    for (int k = 1; k < num; k++)    {        int j = i + j;        int i = j - 1;    }
查看完整描述

3 回答

?
潇潇雨雨

TA贡献1833条经验 获得超4个赞

如果您在 java 中的循环内声明变量,则在迭代结束时它们就消失了。


public int fibIterative(int num) {

    int i = 1;

    int j = 0;


    for (int k = num; k <= num; k++) {

        j = i + j;

        i = j - 1;

    }


    return j;

}


查看完整回答
反对 回复 2021-06-17
?
喵喵时光机

TA贡献1846条经验 获得超7个赞

转换后的代码将是:


public int fibInteractive(int num) {

    int i = 1;

    int j = 0;


    for (int k = 1; k <= num; k++) {

        j = i + j;

        i = j - 1;

    }

    return j;

}

但是,我认为这段代码不会按照您的预期工作。由于i在每次迭代中重置的方式,将4 作为参数传递仍然产生 1 作为返回值:


// Iteration #1

j = 1 + 0

i = 1 - 1

// j's value at this point is 1. i's value is 0.


// Iteration #2

j = 0 + 1

i = 1 - 1

// j's value at this point is 1. i's value is 0.


查看完整回答
反对 回复 2021-06-17
?
慕妹3146593

TA贡献1820条经验 获得超9个赞

public class fibIterative {


  public int AfibIterative (int num)

  {

    int i = 1;

    int j = 0;


    for (int k = 1; k < num; k++)

    {

         j = i + j;

         i = j - 1;

    }

    return j;   

  }


}


查看完整回答
反对 回复 2021-06-17
  • 3 回答
  • 0 关注
  • 119 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信