|
|

楼主 |
发表于 2018-1-10 21:32:32
|
显示全部楼层
所以说,第0个问题中的n3 和第2个问题中的n3是同一回事,当且仅当输入1,2 时返回n3 = 1,除此之外不影响对吗,但我其实还是不明白为什么不会影响。
第1个问题看了你的解析大概能懂但不是特别清晰,我知道当输入n时,会循环(n-2)次,我理解的是当输入n时默认的是循环(n-1)次,多了一次,所以,要把这一次减去,具体的过程有点迷糊,不知电脑是怎么算的,打个比方要算n=5 的值,电脑的过程是不是这样的:
1. 因为 5-2 > 0
2. 所以 n3 = n2 + n1
3. n2 == n1 ==1
4. 所以 n3 == 2
5. 整理一下 n1 == 1, n2 ==1, n3 ==2
此时 n=4,因为 4- 2 > 0, 所以再循环
6. 因为 n1 = n2, 所以 n1(new) 变为 n2 = 1
7. 因为 n2 = n3, 所以 n2(new) 变为 n3 = 2
8. 因为 n3 是返回值,
9. 所以 n3(new) = n2 + n1 = 1 + 2 = 3
10. 此时 n3(new)=3,
此时 n=3,因为 3 - 2 > 0, 所以再循环
11. 整理一下 n1(new)= 1, n2(new)= 2, n3(new) = 3
12. n2(new2) 变为 n3 (new) = 3, n1(new2) 变为 n2(new)= 2
13. 所以返回 n3, n3(new2)= n2(new2)+ n1(new2) = 3 + 2 = 5
此时 n=2,因为 2 - 2 !> 0, 所以不再循环
14. 所以当 n = 5 时,值为 5.
在这个过程中,输入一次,循环两次,总共是3次。
这样理解可以吗 |
|