问题一:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少?
Demo01RabbitBirth.java
package demo01;
import java.util.ArrayList;
import java.util.Arrays;
/*
问题一:有一对兔子,从出生后第3个月起每个月都生一对兔子,
小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少?
*/
public class Demo01RabbitBirth {
public static void main(String[] args) {
ArrayList<Rabbit> list = new ArrayList<>();
list.add(new Rabbit(1));
System.out.println("第1个月:总共有"+list.size()+"对兔子");
for (int i = 2; i < 20; i++) {
//i表示月份从2~20个月
for (int i1 = 0; i1 < list.size(); i1++) {
//更新遍历到的兔子的年龄
list.get(i1).setAge(i - list.get(i1).getBirthMonth() + 1);
//每个月都遍历一次兔子列表
if (list.get(i1).getAge() >= 3){
//如果哪一对兔子已经出生到了第3个月就生1对兔子,出生月份为i
list.add(new Rabbit(i));
// System.out.println(" 生了一只兔子,它是第"+ (i1+1)+"对兔子的孩子");
}
}
System.out.println("第"+ i+ "个月:总共有"+Rabbit.num+"对兔子");
}
}
}
Rabbit.java
package demo01;
public class Rabbit {
private int birthMonth;
private int age = 1;
private int order = 0;
static int num = 0;//兔子编号
public Rabbit() {
num++;
this.order = num;
}
public Rabbit(int birthMonth){
this.birthMonth = birthMonth;
num++;
this.order = num;
}
public int getBirthMonth() {
return birthMonth;
}
public void setBirthMonth(int birthMonth) {
this.birthMonth = birthMonth;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public int getOrder() {
return order;
}
public void setOrder(int order) {
this.order = order;
}
}
问题二:判断101-200之间有多少个素数,并输出所有素数。 素数:只能被1或本身整除的数,如:3,5,7,11,131...
Demo02PrimeNumber.java
package demo02;
/*
问题二:判断101-200之间有多少个素数,并输出所有素数。
素数:只能被1或本身整除的数,如:3,5,7,11,131...
*/
public class Demo02PrimeNumber {
public static void main(String[] args) {
for (int i = 101; i < 201; i++) {
if (isPrime(i)){
System.out.println(i+"是素数");
}else{
System.out.println(i+"不是素数");
}
}
}
public static boolean isPrime(int num) {
for (int i = 2; i < num; i++) {
if (num % i == 0)
return false;
}
return true;
}
}
问题三:打印出所有的"水仙花数"。 水仙花数:指一个三位数,其各位数字立方和等于该数本身。
Demo03NarcissisticNumber.java
package demo03;
/*
问题三:打印出所有的"水仙花数"。
水仙花数:指一个三位数,其各位数字立方和等于该数本身。
*/
public class Demo03NarcissisticNumber {
public static void main(String[] args) {
int ge,shi,bai;
for (int i = 100; i < 1000; i++) {
int num = i;
bai = num / 100;
num -= bai*100;
shi = num/10;
num-= shi*10;
ge = num;
if (bai*bai*bai + shi*shi*shi + ge*ge*ge == i ){
System.out.println(i + "是水仙花数");
}
}
}
}