大数据 -- java入门例题

大数据 -- java入门例题,第1张

大数据 -- java入门例题

今天我们来做一些题目吧:

1、打印九九乘法表
       1*1=1
       2*1=2 2*2=4
       3*1=3 3*2=6 3*3=9
       ...
       9*1=9 9*2=18 .............. 9*9=81   

public class Test1{    
    public static void main(String[] args)[
        for (int i = 1; i <= 9; i++) {
            for (int j = 1; j <= i; j++) {
                System.out.print(i + "*" + j + "=" + (i * j) + "t");   //  /t:制表符,作用是输出自动空4格。
            }
            System.out.println();
        }
    }
}


2、打印杨辉三角形    
      -- 用二维数组实现

import java.util.Scanner;

public class Test2 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);    //使用Scanner需要导包

        System.out.print("请输入杨辉三角的行数: ");
        int n = sc.nextInt();    //定义杨辉三角的行数和列数
        int[][] arr = new int[n][n];


        for (int i = 0; i < arr.length; i++) {
            arr[i][0] = 1;   //每列的第一个元素赋值为1
            arr[i][i] = 1;   //每列的最后一个元素赋值为1
        }

        for (int i = 2; i < arr.length; i++) {        //外循环控制行   从第3行开始
            for (int j = 1; j < arr.length; j++) {    //内循环控制列   从第2列开始
                arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];
            }
        }

        //打印输出
        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j <= i; j++) {          //j<=i 保证输出半角
                System.out.print(arr[i][j] + "  ");
            }
            System.out.println();
        }
    }
}


3、冒泡排序

public class Test3 {
    public static void main(String[] args) {
        //使用冒泡排序对一组数进行排序,使得最终结果是一个从小到大的升序排序
        int[] arr = {11, 23, 45, 22, 1, 45, 25, 68, 19};

        System.out.println("排序之前:");
        printArray(arr);      //调用输出方法输出数组

        System.out.println();
        //定义一个方法实现对数组的冒泡排序
        int[] arr1 = bubbleSoft(arr);
        System.out.println("排序之后:");
        printArray(arr1);     //调用输出方法输出数组

    }

    //定义冒泡排序方法
    public static int[] bubbleSoft(int[] arr) {
        for (int i = 0; i < arr.length - 1; i++) {             // 外层控制排序的次序  
            for (int j = 0; j < arr.length - 1 - i; j++) {     // 内层控制比较的次数                                                               
                if (arr[j] > arr[j + 1]) {
                    int temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }
        }
        return arr;
    }

    //定义输出方法
    public static void printArray(int[] arr) {
        for (int i = 0; i < arr.length; i++) {
            if (i == arr.length - 1) {
                System.out.print(arr[i] + "]");
            } else if (i == 0) {
                System.out.print("[" + arr[i] + ",");
            } else {
                System.out.print(arr[i] + ",");
            }
        }
    }
}

  
4、二分查找法
      前提: 序列必须是有序的。

public class Test4 {
    public static void main(String[] args) {
        //定义一个有序的数组,使用二分法查找数组中元素。找到返回索引,不存在输出-1。
        int[] arr = {1, 11, 19, 22, 23, 25, 45, 45, 68};  
        int number = 100;     //定义要查找的元素

        if (arr != null) {      //在判定数组不为空的前提下
            int start = 0;      //定义start
            int end = arr.length - 1;    //定义end           
            boolean flag = true;
            
            while (start <= end) {
                int mid = (start + end) / 2;  //定义中间指针
                int midNum = arr[mid];
                
                if (number == midNum) {
                    System.out.println("找到元素" + number + ",下标索引为:" + mid);
                    flag = false;
                    break;
                } else if (number < midNum) {
                    end = mid - 1;
                } else {
                    start = mid + 1;
                }
            }
            if (flag) {      //true
                System.out.println("数组中没有元素" + number);
            }
        } else {
            System.out.println("数组为空");
        }
    }
}


5、输入某年某月某日,判断这一天是这一年的第几天?
       以3月5日为例,先把前两个月的加起来,然后再加上5天即本年第几天。
       特殊情况,闰年且输入月份大于3需考虑多加一天。可定义数组存储1-12月各月天数。

import java.util.Scanner;

public class Test5 {
    public static void main(String[] args) {
        Scanner scanner1 = new Scanner(System.in);
        
        System.out.print("输出今年是第几年: ");
        int year = scanner1.nextInt();
        
        System.out.print("输出今年是第几月: ");
        int month = scanner1.nextInt();
        
        System.out.print("输出今年是第几日: ");
        int day = scanner1.nextInt();
        
        int daynum = 0;   // 天数
        
        //一年365天
        int[] month1 = new int[] { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31,30, 31 };
        
        //闰年366天
        if (year % 400 == 0 || year % 100 == 0) {
            month1 = new int[] { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31,30, 31 }; // 闰年里的每个月的天数
        }
        
        //判断这一天是第几天
        for (int index = 1; index <= month; index++) {
            if (index == 1) {
                daynum = day;
            } else {
                daynum += month1[index - 2];
            }
        }
        System.out.println("这一天是这一年的第" + daynum + "天!");
    }
}

 

  这些题目我感觉还是有些难度的,不知道你怎么看呢?

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5706361.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存