简化这个斐波那契方法

问题描述

所以我的工作是转换这个方法:

long fib(long n) {
long i = -1,a = 0,b = 1;
while (++i != n)
b = a + (a = b);
return a;
}

进入另一种迭代斐波那契方法,该方法仍然完全相同,不同之处在于新方法只允许包含简单的指令/赋值(但在这种情况下也允许 while 循环)。

所以我做了这个方法:

  public static long fib2(long n){
        long i = 0;
        long a = 0;
        long b = 1;
        while (i != n){
            long oldA = a;
            a = b;
            b = oldA + a;
            ++i;
        }
        return a;
    }

我现在的问题是:是否可以简化方法并仍然只保留第一种方法(n、i、a、b)中的所有旧变量,或者我是否必须创建一个新变量(在我的情况下为 oldA ) 所以。因为如果可以只用旧变量来做,那会更好,但我不知道怎么做。

我问这一切是因为在下一步中我需要找到这个方法的循环不变量,我认为如果我只有给定的变量而不添加新的变量会更容易。 (我觉得不确定)。

提前谢谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...