本文共 1064 字,大约阅读时间需要 3 分钟。
只用数组
import java.util.Scanner;public class Hw02数组{ public static void main(String[] args) { Scanner sc=new Scanner(System.in); System.out.print("请输入度过月数"); int i =sc.nextInt(); if(i<1){ System.out.println("请输入正确月份");} else{ int[] arr = new int [i+1]; arr[0]=0; arr[1]=1; System.out.println("第1个月的兔子有1对,总数是2"); for(int n=2;n<=i;n++){ arr[n]=arr[n-1]+arr[n-2]; System.out.println(n+"个月有"+arr[n]+"对兔子,总数是" + arr[n]*2); } } }}
这个在编程中没啥问题,哪怕不是很会数组也能正常编写。问题在于对他这个数学逻辑的探究,刚开始没想明白
尝试只用递归
import java.util.Scanner;public class Hw02递归调用{ public static void main(String[] args) { System.out.print("请输入度过月数"); Scanner sc = new Scanner(System.in); int i =sc.nextInt(); if (i<1){ System.out.println("请正确输入月份");} else{ System.out.println(i+"个月有"+test(i)+"对兔子"); System.out.println("总数是" +test(i)*2);} } private static int test(int i){ if(i==1 || i==2){ return 1; }else{ return test(i-1)+test(i-2);} } }
在这个编程过程中有很多芜杂,比如曾在第六行下加入 test(i)=new test (i)后来实在想不到它的意义就把它删掉了,还能正常运行,很不错,private跟public都无所谓,乐。
在这个中的问题是}不会用,在之前尝试中直接把它加在了最后一行,应当在递归层的上面加着的。
转载地址:http://lbsduy.baihongyu.com/