如何解决简化这个斐波那契方法
所以我的工作是转换这个方法:
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 举报,一经查实,本站将立刻删除。