# 方法定义及调用 练习

Posted ryanjie

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了# 方法定义及调用 练习相关的知识,希望对你有一定的参考价值。

方法定义及调用 练习

标签 :Java入坑之旅


0x00. 题目

  1. 编写一个方法,求整数n的阶乘,例如5的阶乘是12345。 [必做题]
  2. 编写一个方法,判断该年份是平年还是闰年。[必做题]
  3. 编写一个方法,输出大于200的最小的质数。[选做题]
  4. 编写一个方法,功能:定义一个一维的int 数组,长度任意,然后将它们按从小到大的顺序输出(使用冒泡排序)(知识点:方法的定义和访问)。[选做题]

0x01. 题目01

  1. 编写一个方法,求整数n的阶乘,例如5的阶乘是12345。 [必做题]
// FunctionFactorial.java
package com.ryanjie.test;

import java.util.Scanner;

/**   
 * @ClassName:FunctionFactorial   
 * @Description: 编写一个方法,求整数n的阶乘,例如5的阶乘是1*2*3*4*5。
 * @author: Ryanjie
 * @date:2018年8月10日 下午4:18:22   
 *     
 * @Copyright: 2018 Ryanjie Inc. All rights reserved. 
 */
public class FunctionFactorial {

    /**   
     * @Title: factorial   
     * @Description: 求整数n的阶乘
     * 
     * @param num      
     * @return: void      
     * @throws   
     */
    public static void factorial(int num) {
        long sum = 1;
        for (int i = 1; i <= num; i++) {
            sum *= i; 
        }
        
        System.out.println(num + " 的阶乘为: " + sum);
    }
    
    public static void main(String[] args) {
        System.out.println("Please input a number<int> :");
        Scanner in = new Scanner(System.in);
        int number = in.nextInt();
        factorial(number);
        in.close();
    }

}

0x02. 题目02

  1. 编写一个方法,判断该年份是平年还是闰年。[必做题]
//FunctionLeapYear.java
package com.ryanjie.test;

import java.util.Scanner;

/**   
 * @ClassName:FunctionLeapYear   
 * @Description:编写一个方法,判断该年份是平年还是闰年。
 * @author: Ryanjie
 * @date:2018年8月10日 下午4:41:28   
 *     
 * @Copyright: 2018 Ryanjie Inc. All rights reserved. 
 */
public class FunctionLeapYear {

    /**   
     * @Title: leapYear   
     * @Description: 判断该年份是平年还是闰年。
     * 
     * @param year      
     * @return: void      
     * @throws   
     */
    public static void isLeapYear(long year) {
        boolean flag = false;
        if ((year % 400 == 0) || (year % 4 == 0 && year % 100 != 0)) {
            flag = true;
        }
        
        if(flag) {
            System.out.println(year + " 是闰年!");
        }
        else {
            System.out.println(year + " 是平年!");
        }
    }
    
    public static void main(String[] args) {
        System.out.println("Please input a year<int>: ");
        Scanner in = new Scanner(System.in);
        long year = in.nextLong();
        isLeapYear(year);
        in.close();
    }

}

0x03. 题目03

  1. 编写一个方法,输出大于200的最小的质数。[选做题]
//FunctionPrimeNumber.java
package com.ryanjie.test;

import java.util.Scanner;

/**   
 * @ClassName:FunctionPrimeNumber   
 * @Description: 编写一个方法,输出大于200的最小的质数。
 * @author: Ryanjie
 * @date:2018年8月10日 下午4:51:24   
 *     
 * @Copyright: 2018 Ryanjie Inc. All rights reserved. 
 */
public class FunctionPrimeNumber {

    /**   
     * @Title: isPrime   
     * @Description: 判断这个数是否为质数
     * 
     * @param num
     * @return      
     * @return: boolean      
     * @throws   
     */
    public static boolean isPrime(int num) {
        
        if(num > 2 && (num & 1) ==0) {
            return false;
        }
        
        for(int i = 3; i * i <= num; i += 2) { 
            if(num % i ==0 ) {
                return false;
            }
        }
        return true;
    }
    
    /**   
     * @Title: findNumber   
     * @Description: 输出大于200的最小的质数
     * 
     * @param number      
     * @return: void      
     * @throws   
     */
    public static void findNumber(int number) {
        System.out.print("大于 " + number + " 的最小的质数为:");
        while (!isPrime(number)) {
            number ++;
        }
        System.out.println(number);
    } 
    
    public static void main(String[] args) {
        System.out.println("Please input a number<long>:");
        Scanner in = new Scanner(System.in);
        int num = in.nextInt();
        findNumber(num);
        in.close();
    }

}

0x04. 题目04

  1. 编写一个方法,功能:定义一个一维的int 数组,长度任意,然后将它们按从小到大的顺序输出(使用冒泡排序)(知识点:方法的定义和访问)。[选做题]
//FunctionBubbleSort.java
package com.ryanjie.test;

import java.util.Random;

/**   
 * @ClassName:FunctionBubbleSort   
 * @Description:定义一个一维的int 数组,长度任意,然后将它们按从小到大的顺序输出(使用冒泡排序)
 * @author: Ryanjie
 * @date:2018年8月10日 下午7:16:50   
 *     
 * @Copyright: 2018 Ryanjie Inc. All rights reserved. 
 */
public class FunctionBubbleSort {
    
    /**   
     * @Title: printAll   
     * @Description: 打印整个数组
     * 
     * @param arr      
     * @return: void      
     * @throws   
     */
    public void printAll(long[] arr) {
        int flag = 0;
        for(long value : arr) {
            System.out.print(value + "	");
            if ((++ flag) % 5 == 0) {
                System.out.println();
            }
        }
    }

    /**   
     * @Title: bubbleSort   
     * @Description: 自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,
     *              较小的往上冒
     *       
     * @return: void      
     * @throws   
     */
    public void bubbleSort(long[] arr) {
        for (int i = 0; i < arr.length - 1; i++) {
            for (int j = 0; j < arr.length - i - 1; j++) {
                if (arr[j] > arr[j + 1]) {
                    long temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1]= temp; 
                }
            }
        }
        System.out.println("冒泡排序算法排序后的数组为:");
        this.printAll(arr);
    }
    
    public static void main(String[] args) {
        // TODO 自动生成的方法存根
        FunctionBubbleSort FB = new FunctionBubbleSort();
        long[] arr = new long[100];
        Random r = new Random();
        for(int i = 0; i < 100; i++) {
            arr[i] = r.nextInt(); 
        }
        System.out.println("排序前的数组为:");
        FB.printAll(arr);
        FB.bubbleSort(arr);
    }

}

以上是关于# 方法定义及调用 练习的主要内容,如果未能解决你的问题,请参考以下文章

未调用自定义适配器 getView() 方法

java29

函数相关概念,及练习

Java学习 -- 方法

Java学习 -- 方法

VSCode自定义代码片段—— 数组的响应式方法