代码实现:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子, * 小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少? 程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....
import java.math.BigInteger; import java.util.Scanner; /*古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子, * 小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少? 程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21.... */ public class Test { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入月数: "); int n = sc.nextInt(); BigInteger big; BigInteger[] arr = new BigInteger[n]; for (int i = 0; i < arr.length; i++) { if (i == 0 || i == 1) { big = BigInteger.valueOf((long) 1); print(big, arr, i); } else { big = (arr[i - 1]).add(arr[i - 2]); print(big, arr, i); } } } public static void print(BigInteger big, BigInteger[] arr, int i) { arr[i] = big; StringBuffer sb = new StringBuffer(); String s = sb.append(big).toString(); System.out.println("第" + (i + 1) + "个月生出" + s + "对兔子"); } }
最后,关注【码上加油站】微信公众号后,有疑惑有问题想加油的小伙伴可以码上加入社群,让我们一起码上加油吧!!!
posted on 2017-03-09 19:15 LoaderMan 阅读(1826) 评论(0) 编辑 收藏 举报