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