• 复习java的例子(第一天)


    1、 编写程序:从键盘上读入一个学生成绩,
        存放在变量score中,根据score的值输出其对应的成绩等级:
        score>=90        等级:  A
        70=<score<90     等级:   B
        60=<score<70     等级:   C
        score<60         等级:  D
    
    import java.util.Scanner;        
    public class Course{
        public static void main(String []arg){
            Scanner scanner = new Scanner(System.in);
            System.out.print("请输入学生的学习成绩, score=");
            int score = scanner.nextInt();
            switch(score/10){
                case 10:
                case 9:
                    System.out.println("A");
                    break;     
                case 8:
                case 7:
                    System.out.println("B");
                    break;         
                case 6:
                    System.out.println("C");
                    break;   
                default:
                  System.out.println("D"); 
                }
            }
        }

    2、编写程序:由键盘输入三个整数分别存入变量num1、num2、num3,
    对它们进行排序(使用 if-else if-else),并且从小到大输出。
    import java.util.Scanner;
    public class Course{
            public static void main(String []arg){
                System.out.print("请输入三个数字:");
                Scanner scanner = new Scanner(System.in);
                System.out.print("第一个数字:num1 = ");
                int num1 = scanner.nextInt();
                System.out.print("第二个数字:num2 = ");
                int num2 =scanner.nextInt();
                System.out.print("第三个数字:num3 = ");
                int num3 =scanner.nextInt();
                
                if(num1<=num2){
                  if(num3<=num1){
              System.out.println("您输入的三个数字从小到大排序为:"
    +num3+" , "+num1+" , "+num2);}
    else if(num3>=num2){
              System.out.println("您输入的三个数字从小到大为:"
    +num1+" , "+num2+" , "+num3);} else{
    System.out.println("您输入的三个数字从小到大为:"
    +num1+" , "+num3+" , "+num2);} }else{ if(num3<=num2){System.out.println("您输入的三个数字从小到大排序为:"
    +num3+" , "+num2+" , "+num1);} else if(num3>=num1){System.out.println("您输入的三个数字从小到大为:"
    +num2+" , "+num1+" , "+num3);} else{System.out.println("您输入的三个数字从小到大为:"
    +num2+" , "+num3+" , "+num1);} } } }

    3、输入 2013 年的某个月份和日期, 例如 month=4, day=21
      经过程序计算, 打印出输入的月份和日期是 2013 年的第几天. 31+28+31+21
    import java.util.Scanner;
    public class TestSwitch{
        public static void main(String [] args){
         System.out.print("month:");
            int month = scanner.nextInt();
            
            System.out.print("day:");
            int day = scanner.nextInt();
            
            int days = day;        
            switch(month - 1){
                case 11:
                    days += 30;
                case 10:
                    days += 31;
                case 9:
                    days += 30;    
                case 8:
                    days += 31;
                case 7:
                    days += 31;
                case 6:
                    days += 30;
                case 5:
                    days += 31;    
                case 4:
                    days += 30;
                case 3:
                    days += 31;
                case 2:
                    days += 28;
                case 1:
                    days += 31;    
           }
            System.out.println(month + "月" + day + "日是 2013 年的第" + days + "天");      
        }   
    }

    4、从键盘读入个数不确定的整数,并判断读入的正数和负数的个数,输入为0时结束输入。
    import java.util.Scanner;
    public class Demo1{
      public static void main(String [] args){
        Scanner scanner = new Scanner(System.in);
            //标记正数的个数
            int x = 0;
            //标记负数的个数
            int y = 0;       
            while(true){      
                int b = scanner.nextInt();
                if(b > 0){
                    x++;
                }else if(b < 0){
                    y++;
                }else{
                    //退出循环使用 break 语句. 
                    break;    
                }
           }
       }
    }
       
    5.(1)从键盘读入学生成绩,找出最高分,并输出学生成绩等级。 成绩>=最高分-10 等级为’A’ 成绩>=最高分-20 等级为’B’ 成绩>=最高分-30 等级为’C’ 其余 等级为’D’ 提示:先读入学生人数,根据人数创建int数组,存放学生成绩。
    (2)
    使用二维数组打印 10 行的杨辉三角。
    package com.atguigu.java;
    
    import java.util.Scanner;
    
    public class TestArray {
    
        public static void main(String[] args) {
            
            //1. 数组的声明
            //int    i = 0;
            int [] a = null; //推荐使用此种方式进行声明. 
            int b [] = null;
            
            //注意: Java语言中声明数组时不能指定其长度(数组中元素的数)
            //int [5] c = null;
            
            //注意: 若没有为数组变量分配指向的内存空间, 就调用其属性, 会在运行时发生 "空指针异常"
            //System.out.println(a.length); 
            
            //2. 为数组分配内存空间
            a = new int[10];
    
            //3. 获取数组的长度
            System.out.println(a.length);  //10
            
            //5. 对数组元素进行初始化
            for(int i = 0; i < a.length; i++){
                a[i] = 100 + i;
            }
            
            /*4. 访问数组的元素: 数组名[数组元素下标]. 注意: 下标从 0 开始, 
    所以最大值是 lengh - 1, 而不是length;*/
    //数组元素会进行默认的初始化: for(int i = 0; i < a.length; i++){ System.out.println(a[i]); } //若访问数组的下标超过合法范围, 则在运行时会抛出 ArrayIndexOutOfBoundsException //a[10] = 10; //数组的静态初始化 int [] c = {1, 2, 3, 4, 5}; int [] d = new int[]{2, 3, 4, 5, 6}; for(int i = 0; i < d.length; i++){ System.out.println(d[i]); } //声明一个二维数组 int [][] aa = new int[5][]; //对二维数组的元素进行初始化: 二维数组的元素是一个一维数组! //遍历需要使用嵌套的 for 循环. for(int i = 0; i < aa.length; i++){ aa[i] = new int[i + 1]; for(int j = 0; j < aa[i].length; j++){ aa[i][j] = 1 + i * j; } } //对二维数组进行遍历 for(int i = 0; i < aa.length; i++){ for(int j = 0; j < aa[i].length; j++){ System.out.print(aa[i][j] + " "); } System.out.println(); } /** * 2.从键盘读入学生成绩,找出最高分,并输出学生成绩等级。 * 成绩>=最高分-10 等级为’A’ 成绩>=最高分-20 等级为’B’ * 成绩>=最高分-30 等级为’C’ 其余 等级为’D’ * 提示:先读入学生人数,根据人数创建int数组,存放学生成绩。 */ //1. 创建 Scanner 类 Scanner scanner = new Scanner(System.in); //2. 读入要录入的学生人数 System.out.print("请输入学生人数"); int count = scanner.nextInt(); //3. 创建一个 int 类型的数组, 用于存放学员的成绩, 数组的长度为 2 所录入数值 int [] scores = new int[count]; //4. 利用循环录入学生的成绩, 同时得到最高分. 把学生成绩录入到 3 声明的数组中. int highScore = 0; for(int i = 0; i < scores.length; i++){ scores[i] = scanner.nextInt(); if(scores[i] > highScore){ highScore = scores[i]; } } //5. 遍历 3 声明的数组, 根据最高分, 获取学生的升级等级. for(int i = 0; i < scores.length; i++){ if(scores[i] >= highScore - 10){ System.out.println("student " + i + " score is " + scores[i] + " grade is A"); }else if(scores[i] >= highScore - 20){ System.out.println("student " + i + " score is " + scores[i] + " grade is B"); }else if(scores[i] >= highScore - 30){ System.out.println("student " + i + " score is " + scores[i] + " grade is C"); }else{ System.out.println("student " + i + " score is " + scores[i] + " grade is D"); } } //作业: 使用二维数组打印 10 行的杨辉三角, 杨辉三角实际上是二项式展开式的系数 /** * 1 (a+b)^0 * 1 1 (a+b)^1 * 1 2 1 (a+b)^2 * 1 3 3 1 (a+b)^3 * 1 4 6 4 1 * 1 5 10 10 5 1 * * ... * * 1. 什么是杨辉三角: 二项式展开式的系数 * 2. 为什么使用的是 二维数组: 因为杨辉三角由行和列组成, 每一行是一个一维数组,
    而杨辉三角则是有一维数组组成的数组, 即二维数组. * 3. 杨辉三角的具体特点: * 3.1 第 n 行有 n 个元素(n >= 1) * 3.2 每一行的第一个元素和最后一个元素都是 1 * 3.3 不等于 1 的那些元素的值为上一行的对应列和对应列的前一列的元素的和.
    */ //1. 先声明一个二维数组: 二维数组有 10 个元素 int [][] yh = new int[10][]; //2. 对二维数组的元素进行初始化: 第 i 个元素(i 从 0 开始) 为长度为 i + 1 的一维数组. for(int i = 0; i < yh.length; i++){ //二维数组的每一个元素是一维数组, 而一维数组时引用类型, 其默认值为 null //System.out.println(yh[i]); yh[i] = new int[i + 1]; //3. 对具体的每一个元素进行初始化(是 1 的元素): yh[i][0] = 1, yh[i][i] = 1 yh[i][0] = 1; yh[i][i] = 1; //4. 对具体的每一个元素进行初始化(不是 1 的元素): yh[i][j] = yh[i-1][j] + yh[i-1][j-1]; // (i > 1 && j > 0 && j < i) if(i > 1){ for(int j = 1; j < i; j++){ yh[i][j] = yh[i-1][j] + yh[i-1][j-1]; } } } //打印 for(int i = 0; i < yh.length; i++){ for(int j = 0; j < yh[i].length; j++){ System.out.print(yh[i][j] + " "); } System.out.println(); } } }

    6、打印 1-100 之间的所有素数
    package com.atguigu.java;
    public class HelloWorld {
        public static void main(String[] args) {
            System.out.println("hello eclipse...");
            
            //打印 1-100 之间的所有素数
            //素数: 有且仅有两个正约数的整数. 即 2 ~ i-1 之间没有一个是其约数.      
            //标记一个整数是素数. true 表示是一个素数, false 表示不是素数. 
            boolean flag = true;   
            long begin = System.currentTimeMillis();     
            for(int i = 2; i <= 100000; i++){        
                flag = true;    
                /**
                 * 16
                 * 
                 * 2  8
                 * 3
                 * 4  4
                 * 5 
                 * 7
                 * 8  2
                 * 
                 * 
                 */
                
            //从 2 循环到 i-1, 检验每一个数是否为 i 的约数.  
                for(int j = 2; j <= Math.sqrt(i); j++){
                    if(i % j == 0){
                        flag = false;
                        //结束这次循环. 
                        break;
                    }
                }
                
                   if(flag){ 
                      System.out.println(i);
                   }       
            }     
            long end = System.currentTimeMillis();      
            System.out.println("time: " + (end - begin)); //2194   98
        }
    }
    
    
    
    


  • 相关阅读:
    HDU 1698 Just a Hook (区间更新+延迟标记)
    HDU 1754 I Hate It 线段树
    HDU 1847 Good Luck in CET-4 Everybody! (sg函数)
    博弈汇总
    Codeforces cf 713A Sonya and Queries
    hihoCoder 1082 : 然而沼跃鱼早就看穿了一切
    hihoCoder 1298 : 数论五·欧拉函数
    hdu 5821 Ball
    hdu 5818 Joint Stacks(栈的模拟)
    hdu 5802 Windows 10
  • 原文地址:https://www.cnblogs.com/shellway/p/3699982.html
Copyright © 2020-2023  润新知