JAVA 经典算法 精选 改编 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21.... public class Main1 { public static void main(String args[]){ for(int i=1;i k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你,重复执行第一步。 (3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。 import java.util.Scanner; public class Main4{ public static void main(String[] args){ Scanner scanner = new Scanner(System.in); int n=scanner.nextInt(); System.out.print(n+"="); fenjie(n); } static void fenjie(int n){ for(int i=2;i=b int temp = a; a = b; b = temp; } while (a % b > 0) { r = a % b; a = b; b = r; } return b; } static int lcm(int a, int b) {//最小公倍数 return a*b/gcd(a, b); } } 【程序 6】 题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子? public class Main06 { public static void main(String[] args) { int amountOfMonkey = 5;//猴子总数 int amount = 0;//最少桃子总数 int x = amountOfMonkey-1;//最后一只猴子分完剩下的 boolean flag = fals