- public class Test1 {
- /*
- * 1,编写程序,判断给定的某个年份是否是闰年。 闰年的判断规则如下: (1)若某个年份能被4整除但不能被100整除,则是闰年。
- * (2)若某个年份能被400整除,则也是闰年。
- */
- public static void main(String[] args) {
- System.out.println(isRunNian(1988));
- }
- public static boolean isRunNian(int m) {
- boolean flag = false;
- if (m % 4 == 0 && m % 100 != 0) {
- flag = true;
- } else if (m % 400 == 0) {
- flag = true;
- }
- return flag;
- }
- }
复制代码- public class Test2 {
- /**
- *2,给定一个百分制的分数,输出相应的等级。
- 90分以上 A级
- 80~89 B级
- 70~79 C级
- 60~69 D级
- 60分以下 E级
- */
- public static void main(String[] args) {
- System.out.println(level(87));
- System.out.println(level(74));
- System.out.println(level(97));
- System.out.println(level(65));
- System.out.println(level(45));
- System.out.println(level(101));
- }
- public static String level(int score) {
- if(score > 100 || score < 0) {
- return "输入的分数不正确,请重新输入。";
- } else if(score >= 90) {
- return "A级";
- } else if(score >= 80) {
- return "B级";
- } else if(score >= 70) {
- return "C级";
- } else if(score >= 60) {
- return "D级";
- } else {
- return "E级";
- }
- }
- }
复制代码- public class Test3 {
- /**
- * 3、输出所有的水仙花数,把谓水仙花数是指一个数3位数,其各各位数字立方和等于其本身,
- 例如: 153 = 1*1*1 + 3*3*3 + 5*5*5
- */
- public static void main(String[] args) {
-
- for(int i=100; i<1000; i++) {
-
- int bai = i / 100;
- int shi = i / 10 % 10;
- int ge = i % 10;
-
- if(i == bai*bai*bai + shi*shi*shi + ge*ge*ge) {
- System.out.println(i);
- }
-
- }
- }
- }
复制代码- public class Test4 {
- /**
- * 4、求 2/1+3/2+5/3+8/5+13/8.....前20项之和?
- */
- public static void main(String[] args) {
- FenShu fsSum = new FenShu(0,1);
-
- for(int i=1; i<=20; i++) {
- System.out.print(getNum(i+1) + ",");
- System.out.print(getNum(i) + ",");
- System.out.println(new FenShu(getNum(i+1),getNum(i)));
- fsSum = fsSum.add(new FenShu(getNum(i+1),getNum(i)));
- System.out.println(fsSum);
- }
- System.out.println(fsSum);
-
- }
- public static int getNum(int n) {
- if(n == 1) {
- return 1;
- } else if(n ==2) {
- return 2;
- } else {
- return getNum(n-1) + getNum(n-2);
- }
- }
- // 内部类,定义一个分数。
- public static class FenShu {
- private int zi;
- private int mu;
- public FenShu(int zi, int mu) {
- this.zi = zi;
- this.mu = mu;
- }
- public FenShu add(FenShu fs) {
- int muNum = getMinGBS(this.mu, fs.mu);
- int gys = getMaxGYS(this.mu, fs.mu);
- int ziNum = this.zi * fs.mu / gys + fs.zi * this.mu / gys;
- return getSimpleFenShu(ziNum, muNum);
- }
- public FenShu getSimpleFenShu(int m, int n) {
- int gys = getMaxGYS(m, n);
- if (gys != 1) {
- return new FenShu(m / gys, n / gys);
- }
- return new FenShu(m, n);
- }
- public String toString() {
- return zi + "/" + mu;
- }
- }
- // 获取两数的最大公约数。
- public static int getMaxGYS(int m, int n) {
- // 交换m,n的位置,保证大数在前。
- if (m < n) {
- m ^= n;
- n ^= m;
- m ^= n;
- }
-
- if(n == 0) {
- return 1;
- }
- int r;
- while ((r = m % n) != 0) {
- m = n;
- n = r;
- }
- return n;
- }
- public static int getMinGBS(int m, int n) {
- return m * n / getMaxGYS(m, n);
- }
- }
复制代码- public class Test5 {
- /**
- * 5、利用程序输出如下图形:
- *
- * * *
- * * * * *
- * * * * * * *
- * * * * *
- * * *
- *
- */
- public static void main(String[] args) {
- print(7);
- }
- public static void print(int n) {
- int count = 1;
- for(int i=0; i<n; i++) {
- for(int j=0; j<count; j++) {
- System.out.print("* ");
- }
- System.out.println();
- if(i < n / 2) {
- count += 2;
- } else {
- count -=2;
- }
- }
- }
- }
复制代码- public class Test6 {
- /*
- * 6、计算圆周率
- PI=4-4/3+4/5-4/7.......
- 打印出第一个大于 3.1415小于 3.1416的值
- */
- public static void main(String[] args) {
- int count = 0;
- double p = 0;
- while(!(p > 3.1415 && p < 3.1416)) {
- count++;
- if(count % 2 != 0) {
- p += 4.0 / (2 * count - 1);
- } else {
- p -= 4.0 / (2 * count - 1);
- }
- }
-
- System.out.println(p);
- System.out.println("总共计算了" + count + "项。");
- }
- }
复制代码- public class Test7 {
- /**
- * 7、歌德巴赫猜想,任何一个大于六的偶数可以拆分成两个质数的和
- 打印出所有的可能
- */
- public static void main(String[] args) {
- for(int i=6; i<100; i++) {
- list(i);
- }
- }
-
- public static void list(int m) {
- if(m <= 6 || m % 2 != 0) {
- //System.out.println("请输入大于6的偶数。");
- return;
- }
-
- for(int i=2; i<m; i++) {
- for(int j=2; j<=i; j++) {
- if(isZhiShu(i) && isZhiShu(j) && m == i + j) {
- System.out.println(m + " = " + i + " + " + j);
- }
- }
- }
- System.out.println("*******************************************************");
- }
-
- public static boolean isZhiShu(int m) {
- double len = Math.sqrt(m);
- for(int i=2; i<=len; i++) {
- if(m % i == 0) {
- return false;
- }
- }
- return true;
- }
- }
复制代码- import java.util.Random;
- public class Test8 {
- /**
- * 8,定义一个20*5的二维数组,用来存储某班级20位学员的5门课的成绩;这5门课
- 按存储顺序依次为:core C++,coreJava,Servlet,JSP和EJB。
- (1)循环给二维数组的每一个元素赋0~100之间的随机整数。
- (2)按照列表的方式输出这些学员的每门课程的成绩。
- (3)要求编写程序求每个学员的总分,将其保留在另外一个一维数组中。
- (4)要求编写程序求所有学员的某门课程的平均分
- */
- public static void main(String[] args) {
- Random rand = new Random();
- String[] arr = {"core C++","coreJava","Servlet","JSP","EJB"};
- int[][] score = new int[20][];
-
- //赋值
- for(int i=0; i<score.length; i++) {
- score[i] = new int[5];
- for(int j=0; j<score[i].length; j++) {
- score[i][j] = rand.nextInt(100);
- }
- }
-
- //打印输出
- for(int i=0; i<score.length; i++) {
- System.out.println("学生" + (i+1) + "各科成绩:");
- for(int j=0; j<score[i].length; j++) {
- System.out.print( arr[j] + ":" + score[i][j] + "\t");
- }
- System.out.println();
- }
-
- System.out.println("********************************************************");
- //求各学生的总分,存放到一个一维数组中。
- int[] sum = new int[20];
- for(int i=0; i<score.length; i++) {
- int temp = 0;
- for(int j=0; j<score[i].length; j++) {
- temp += score[i][j];
- }
- sum[i] = temp;
- }
- //打印总分
- int count = 0;
- for(int x : sum) {
- count++;
- System.out.println("学生" + count + "总成绩:" + x);
- }
- System.out.println("********************************************************");
-
- //求平均分
- double[] avg = new double[5];
- for(int i=0; i<score.length; i++) {
- for(int j=0; j<score[i].length; j++) {
- avg[j] += score[i][j]*1.0/20;
- }
- }
-
- //打印平均
- for(int i=0; i<avg.length; i++) {
- System.out.println(arr[i] + "的平均分是:" + avg[i]);
- }
-
- }
- }
复制代码- import java.util.ArrayList;
- public class Test9 {
- /**
- * 9. 约梭芬杀人法
- 把犯人围成一圈,每次从固定位置开始算起,杀掉第7个人,直到剩下最后一个。
- */
- public static void main(String[] args) {
- killTurn(10);
- }
-
- public static void killTurn(int m) {
- ArrayList<Integer> al = new ArrayList<Integer>();
- for(int i=1; i<=m; i++) {
- al.add(i);
- }
-
- int index = 0;
- while(al.size()!=0) {
- if(al.size()>=7) {
- index = al.remove(6);
- System.out.println("第" + index + "个人被杀掉。");
- } else {
- int len = al.size();
- while(len < 7) {
- len += al.size();
- }
-
- index = al.remove(al.size() -(len-7) -1);
- System.out.println("第" + index + "个人被杀掉。");
- }
- }
-
-
- }
- }
复制代码- import java.util.Random;
- public class Test10 {
- /**
- * 10. 判断随机整数是否是素数
- 产生100个0-999之间的随机整数,然后判断这100个随机整数哪些是素数,哪些不是?
- */
- public static void main(String[] args) {
- Random rand = new Random();
- String str = null;
- for(int i=0; i<100; i++) {
- int num = rand.nextInt(1000);
- if(isSuShu(num)) {
- str = "是素数。";
- } else {
- str = "不是素数。";
- }
- System.out.println("本次随机数为:" + num + ",\t" + str);
- }
- }
-
- public static boolean isSuShu(int m) {
- double len = Math.sqrt(m);
- for(int i=2; i<len; i++) {
- if(m % i == 0) {
- return false;
- }
- }
- return true;
- }
- }
复制代码 |