首先,我表示,我是来赚技术分的,刚才看到一小伙伴发了个提问,我在这里把我自己写的代码坐下汇总:有错误的,欢迎指正~{:2_32:}
题目:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少?
两种解题思路,一种是利用数据变量的值得改变来算兔子,另一种是通过创建数组的方式
方法一:
- /*
- 整体思路其实就是for循环,第一个月1,第二个月1,第三个月2,第四个月3,第五个月就是5了,可以看出下个月就是前两个月兔子之和
- */
- class Deno{
- public static void main(String[]args)
- {
- int m=1;
- //定义变量,通过在内存中数据的覆值操作,也就是所谓的值传递
- int n=1;
- int sum=0;
- //通过不停的改变内存的变量的值
- for(int i=1;i<=24;i++)
- //for循环,控制i的值,表示的就是月份
- {
-
- n=m;
- m=sum;
- sum=m+n;
- System.out.println("每个月兔子的数量:"+sum);
-
- }
-
- }
-
- }
复制代码 方法二:
- class Demo1{
- public static void main(String[]args)
- {
- int arr[]=new int [12];
- //数组中创建12个元素,表示12个月份
- arr[0]=arr[1]=1;
- for(int i=0;i<12;i++)
- //数组中的脚标是从0开始的,注意i的取值范围,避免脚标越界异常
- {
- if(i==0||i==1)
- {
- System.out.println("第"+(i+1)+"月的兔子数量:1");
- //因为数组的脚标是从0开始的,所以为了相对应的月份就使用的是i+1余数量对应
- }
- else
- {
- arr[i]=arr[i-1]+arr[i-2];
- System.out.println("第"+(i+1)+"月的兔子数量:"+arr[i]);
- }
-
- }
- }
- }
复制代码 其实,这个题目可以作为一个衍生例子:比如还有什么蚂蚁爬绳子之类的。
|
|