1、打印出从1到100的偶数(2的倍数)
public class test1_3 {
public static void main(String[] args) {
for(int i = 2;i<=100;i +=2){
System.out.println(i);
}
}
}
2、判断101-200之间有多少个素数,并输出所有素数(在大于1的自然数中,除了1和它本身以外不再有其他因数的数)
提示:判断素数的方法:用这个数分别去除2到这个数平方根,如果能被整除, 则表明此数不是素数,反之是素数。
public class Test2 {
public static void main(String[] args) {
int count = 0;
outer:for(int i=101;i<=200;i++){
for(int j =2;j<=i/2;j++){
if(i%j==0){
continue outer;
}
}
count++;
System.out.print(i+"、");
}
System.out.println();
System.out.println("总共有"+count+"个质数");
}
}
3、打印出以下效果(说明:n!=n*(n-1)(n-2) … 1)
1!=1;
2!=2;
3!=6;
4!=24;
5!=120;
方法一:循环
public class test3 {
public static void main(String[] args) {
for(int m = 1,i = 1,x = 1;m <= 5;m++){
while (i<=m){
x *= i;
i++;
}
System.out.println(m+"!="+x);
}
}
}
方法二:递归
public class TestRecursion02 {
public static void main(String[] args) {
System.out.println("1!="+factorial(1));
System.out.println("2!="+factorial(2));
System.out.println("3!="+factorial(3));
System.out.println("4!="+factorial(4));
System.out.println("5!="+factorial(5));
}
/** 求阶乘的方法*/
static long factorial(int n){
if(n==1){
return 1;
}else{
return n*factorial(n-1);
}
}
}
4、有1、2、3、4四个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
public class Test4 {
public static void main(String[] args) {
int sum = 0;
for(int i =1;i<=4;i++) {
for (int j = 1; j <= 4; j++) {
if (i != j) {
for (int k = 1; k <= 4; k++) {
if (k != i && k != j) {
sum++;
System.out.println(100 * i + 10 * j + k);
}
}
}
}
}
System.out.println("总共有无重三位数"+sum+"个");
}
}
5、将一个无序的数组从小到大排序
package cn.sxt.array02;
import java.util.Arrays;
/**
* 测试冒泡排序
* @author 朱宏慧
*/
public class TestBubbleSort {
public static void main(String[] args) {
int temp = 0;
int[] values = {1,4,7,0,2,5,6,3,9};
for(int i = 0;i<values.length-1;i++){
for(int j=0;j<values.length-1-i;j++){
//比较大小,换顺序
if(values[j]>values[j+1]){
temp = values[j];
values[j]=values[j+1];
values[j+1]=temp;
System.out.println(Arrays.toString(values));
}
}
}
}
}
ackage cn.sxt.array02;
import java.util.Arrays;
/**
* 测试Java.util.Arrays工具类的使用
*
*/
public class TestArrays {
public static void main(String[] args) {
int[] a = {22,1,2,3};
System.out.println(a);
System.out.println(Arrays.toString(a));
Arrays.sort(a);
System.out.println(Arrays.toString(a));
}
}
6、有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
//递归
public class Test6 {
public static void main(String[] args) {
System.out.print("请输入月份:");
Scanner in = new Scanner(System.in);
int n = in.nextInt();
System.out.println("第" + n + "个月,兔子的总数为" + fun(n));
}
private static int fun(int n) {
if((n == 1)||(n == 2)) {
return 1;
}else {
return (fun(n - 1) + fun(n - 2));
}
}
}
预习思考题:假如兔子长大到10个月就不再生小兔子了呢?假如兔子长到15个月就老死了呢?
package cn.rabbitProblem;
import java.util.ArrayList;
import java.util.Scanner;
class Rabbit {
private int age;
public Rabbit(int age) {
this.age = age;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public static void main(String[] args) {
ArrayList<Rabbit> rabbits = new ArrayList<>();
Rabbit e = new Rabbit(1);
rabbits.add(e);
Scanner scanner = new Scanner(System.in);
System.out.println("请输入月份:");
int month = scanner.nextInt();
for (int i = 1; i <month; i++) {
for (int j = 0; j < rabbits.size();j++) {
Rabbit current = rabbits.get(j);
current.setAge((current.age + 1));
if(current.age==15){
rabbits.remove(current);
}
if(current.age>2&& current.age<10 ){
Rabbit baby=new Rabbit(0);
rabbits.add(baby);
}
}
}
System.out.println(month+"月份共有"+(rabbits.size()*2)+"只兔子");
}
}