Java代码题2

 

//1.计算一百万以内的所有的质数的个数
//质数:只能被1和它本身整除的自然数
public class Sanyuan {
    public static void main(String[] args) {
        boolean isFlag = true;      //标识i是否能被除尽,一旦除尽,修改其值
        long startTime = System.currentTimeMillis(); //获取当前时间距离1970:01:01的毫秒
        int count = 0;              //记录质数的个数
        for(int j=2;j<=1000000;j++){    //遍历一百万以内的值
            for(int i=2;i<=Math.sqrt(j);i++){  //优化,使用根号j节省不必要的计算
                if(j%i == 0){       //j能否被i除
                    isFlag = false;
                    break;           //优化:只对非质数的有效
                }
            }
            if (isFlag==true){
                count++;
            }
            isFlag = true;             //得到一个质数后修改为true,继续执行外层循环
        }
        long endTime = System.currentTimeMillis();
        System.out.println("所耗时间:"+(endTime-startTime));

        System.out.println("总质数为:"+count);
    }
}
/**
 *2.定义一个Student 包含三个属性,学号number、年级state、成绩score
 *创建20个对象、学号为1到20,年级和成绩都由随机获取
 *问题一、打印三年级(state=3)的学生信息
 * 问题二、使用冒泡排序按学生成绩排序,并遍历所有的学生信息
 */

public class StudentTest {
    public static void main(String[] args) {
        Student[] stus = new Student[20];//创建一个Student类型的数组

        for (int i = 0; i < stus.length; i++) {
            stus[i] = new Student();  //给数组的每个元素new一个对象
            stus[i].number = (i + 1); //学号为1到20
            stus[i].state = (int)(Math.random() * (6 - 1 + 1) + 1);//年级[1,6]
            stus[i].score = (int)(Math.random() * (100 - 0 + 1));//随机成绩[0,100]
        }

        StudentTest st = new StudentTest();

        System.out.println("=======================遍历==========================");
        st.print(stus);

        System.out.println("=========问题一、打印三年级(state=3)的学生信息===========");
        st.assignStudentInfo(stus,3);

        System.out.println("=====问题二、使用冒泡排序按学生成绩排序,并遍历所有的学生信息====");
        st.sort(stus);
        st.print(stus);

    }

    /**
     * 遍历数组
     * @param stus
     */
    public void print(Student[] stus) {
        for (int i = 0; i < stus.length; i++) {
            System.out.println(stus[i].info());
        }

    }

    /**
     * 输出指定班级的学生信息
     */
    public void assignStudentInfo(Student[] stus, int state) {
        for (int i = 0; i < stus.length; i++) {
            if (stus[i].state == state) {
                System.out.println(stus[i].info());
            }
        }
    }

    /**
     * 按学生成绩排序
     */
    public void sort(Student[] stus) {
        for (int i = 0; i < stus.length - 1; i++) {
            for (int j = 0; j < stus.length - 1 - i; j++) {
                if (stus[j].score > stus[j + 1].score) {
                    Student temp = stus[j]; //交换数组对象
                    stus[j] = stus[j + 1];
                    stus[j + 1] = temp;
                }
            }
        }
    }
}

class Student {
    int number;
    int state;
    int score;
    //显示学生信息方法
    public String info(){
        return "学号:"+number+",年级:"+state+",成绩:"+score;
    }
}

 

/**
 * 3.打印一个m*n的*型矩形,并计算该矩形的面积,将其作为方法的返回值
 */
public class ExerTest {

    public static void main(String[] args) {

        ExerTest et = new ExerTest();
        int area = et.method(10,8);
        System.out.println("面试为:"+area);
    }
    public static int method(int m,int n){

        for(int i=0;i<n;i++){
            for(int j=0;j<m;j++){
                System.out.print("* ");
            }
            System.out.println();
        }
        return m * n;
    }
}

 

posted @ 2021-01-10 18:38  懒惰的咸鱼  阅读(117)  评论(0编辑  收藏  举报