本帖最后由 尹丽峰 于 2013-6-19 08:01 编辑
- public class lianxi01
- {
- public static void main(String[] args)
- {
- System.out.println("第1个月的兔子对数: 1");
- System.out.println("第2个月的兔子对数: 1");
- int f1 = 1, f2 = 1, f, M=24;
- for(int i=3; i<=M; i++)
- {
- f = f2;
- f2 = f1 + f2;
- f1 = f;
- System.out.println("第" + i +"个月的兔子对数: "+f2);
- }
- }
- }
复制代码 我一直弄不明白 f=f2 和 f1=f这两个赋值表达式到底表达什么意思?后来我去群里问了,有人这样回答的,f是兔子数,f1是表示最开始那对兔子第三个月生了的兔子数,f2表示第四个月升的兔子数,因为这道题目涉及到递归,每个月的兔子总数很有规律,就是1-1-2-3-5-8-13-21...这样的规律,可是把 f2赋值给f是什么意思?把f赋值给f1又是什么意思?思前想后就是想不明白.
于是有人又写了一个代码:- public class Demo
- {
- public static void main(String [] args)
- {
- int arr1[]=new int [10];
- arr1[0]=1;
- arr1[1]=1;
- for(int i=0;i<10; i++)
- {
- if(i>1)
- arr1[i] = arr1[i1]+arr1[i-2];
- }
- for(int j =0;j<arr1.length;j++);
- {
- System.out.println(arr1[j]);
- }
- }
- }
复制代码 对于别人给的这个代码我是看懂了,用数组来体现我个人感觉更清晰明了,但是第一眼看上去没什么问题,仔细一看感觉有感觉有点奇怪,于是我自己改了改- public class Demo
- {
- public static void main(String [] args)
- {
- int arr1[]=new int [10];
- arr1[0]=1;
- arr1[1]=1;
- for(int i=2;i<arr1.length; i++)
- {
- arr1[i] = arr1[i-1]+arr1[i-2];
- System.out.println(arr1[i]);
- }
- }
- }
复制代码 这个代码不会输出第三个月和第四个月的的兔子数 ,只会从第五个月到第十二个月.第一次发帖,不知道排版有没问题,也没看到预览的按钮,要是排版不行大家将就这看吧.
写这么多其实后面两个代码只是分享下,就是第一个代码的那个问题我还是搞不懂,有人来详细说一说吗?
|