//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; } }