public static void rabbit() {
int mun1=1,mun2=1;
int mun;
int month=10;
for(int i=1;i<=month;i++) {
if(i<=2) {
System.out.println("第"+i+"个月的兔子总数量是1对");
}else {
mun=mun2;
mun2=mun1+mun2;
mun1=mun;
System.out.println("第"+i+"个月的兔子
总数量是"+mun2+"对");
}
}
```重点解答一下
mun=mun2;
mun2=mun1+mun2;
mun1=mun;
System.out.println("第"+i+"个月的兔子
总数量是"+mun2+"对");
这串代码的意思,数学不好搞了一个小时没搞明白为什么是这样子写,
**mun**的值在**mun2=mun1+mun2**这串代码里是否也变成**了mun1+mun2?**
你好。
首先,mun的值没有变成mun1+mun2。因为,先将mun2的值复制给了mun,此处仅仅是把mun2的值复制给mun,随后mun 和mun2便没有任何联系了。
对于上述三行代码:斐波那契数列是:1、1、2、3、5、8、13、21、34....开始时,mun1=1,mun2=2 然后经过一次循环上述三行代码后,mun1=1,mun2=2
再经过一次循环后,mun1=2,mun2=3 由此可见这三行代码是将mun1,mun2依次后移
由斐波那契数列公式可知:f(n)=f(n-1)+f(n-2)
希望能够帮助你理解
这里用的是基本类型,mun,mun1,mun2都是数值,mun = mun2 代表将mun2的值给mun,而不是mun恒等于mun2
例如现在 mun1为1 mun2为2,那段代码的意思就是
mun = 2
mun2 = 1 + 2
mun1 = 2