请用JAVA实现如下 1. 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 2.判断101-200之间有多少个素数,并输出所有素数。 3.将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。 4.输入两个正整数m和n,求其最大公约数和最小公倍数 5.一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高?
时间: 2023-11-06 17:16:08 浏览: 81
一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
1. 代码实现:
```
public class Rabbit {
public static void main(String[] args) {
int month = 24; // 指定月份
int a = 1, b = 0, c = 0; // a表示一个月大的兔子数,b表示两个月大的兔子数,c表示三个月大的兔子数
for (int i = 1; i <= month; i++) {
c += b;
b = a;
a = c;
if (i >= 4) {
c -= b;
}
System.out.println("第" + i + "个月的兔子总数为:" + (a + b + c));
}
}
}
```
2. 代码实现:
```
public class PrimeNumber {
public static void main(String[] args) {
int count = 0;
for (int i = 101; i <= 200; i++) {
boolean flag = true;
for (int j = 2; j < i; j++) {
if (i % j == 0) {
flag = false;
break;
}
}
if (flag) {
System.out.print(i + " ");
count++;
}
}
System.out.println();
System.out.println("101-200之间共有" + count + "个素数");
}
}
```
3. 代码实现:
```
public class Factorization {
public static void main(String[] args) {
int n = 90;
System.out.print(n + "=");
for (int i = 2; i <= n; i++) {
while (n % i == 0 && n != i) {
System.out.print(i + "*");
n /= i;
}
if (n == i) {
System.out.print(i);
break;
}
}
}
}
```
4. 代码实现:
```
public class GcdLcm {
public static void main(String[] args) {
int m = 24, n = 36;
int gcd = getGcd(m, n);
int lcm = m * n / gcd;
System.out.println(m + "和" + n + "的最大公约数为:" + gcd);
System.out.println(m + "和" + n + "的最小公倍数为:" + lcm);
}
private static int getGcd(int a, int b) {
int tmp;
while (b != 0) {
tmp = b;
b = a % b;
a = tmp;
}
return a;
}
}
```
5. 代码实现:
```
public class Ball {
public static void main(String[] args) {
int height = 100; // 初始高度
int count = 10; // 反弹次数
int distance = 0; // 总距离
for (int i = 1; i <= count; i++) {
distance += height * 2;
height /= 2;
}
System.out.println("第" + count + "次落地时,共经过" + distance + "米");
System.out.println("第" + count + "次反弹高度为:" + height + "米");
}
}
```
阅读全文