【Java方法的遞歸調用004】


一、方法的遞歸

方法自己調用自己

package com.company.Mothod;

/**
 * @Created by IntelliJ IDEA.
 * @Author tk
 * @Date 2019/8/9
 * @Time 15:26
 */
public class MethodTest06 {
    public static void main(String[] args){
        int resum1=sum(100);
        int resum2=sum(99);
        System.out.println("resum1== "+resum1+"\nresum2== "+resum2);
        int reValue=reSum(5);
        System.out.println("reValue== "+reValue);

        int resValuesum = resValuesum(6);
        System.out.println("resValuesum== "+resValuesum);

        int resValueSum = resValueSum(6);
        System.out.println("resValueSum== "+resValueSum);




    }
    //未使用遞歸實現1~n的和
    public static int sum(int n){
        int sum = 0;
        for(int i=1;i<=n;i++){
            sum += i;
        }
        return sum;
    }

    //使用遞歸實現1~n的和(遞歸調用:方法自己調用自己)
    public static int reSum(int n){
        if(n==1){
            return 1;
        }else{
            return n+reSum(n-1);
        }
    }

    //使用遞歸和未遞歸實現1~n的乘積
    public static int resValuesum(int n){
        int sum =1;
        for(int i=1;i<=n;i++){
            sum *= i;
        }
        return sum;
    }

    public static int resValueSum(int n){
        if(n==1){
            return 1;
        }else{
            return n*resValueSum(n-1);
        }
    }

}

課后練習題

package com.company.Mothod;

/**
 * @Created by IntelliJ IDEA.
 * @Author tk
 * @Date 2019/8/9
 * @Time 17:43
 */


/*
【程序1】
 打印出100-999中所有的"水仙花數",所謂"水仙花數"是指一
 個三位數,其各位數字立方和等於該數本身。例如:
 153是一個"水仙花數",因為153=1的三次方+5的三次方
 +3的三次方。
 1.程序分析:利用for循環控制100-999個數,每個數分解
 出個位,十位,百位。
*/
public class MethodTest07 {
    public static void main(String[] args){
        for(int i=100;i<1000;i++){
            if(num(i)){
                System.out.println(i+"是水仙花數");
            }
        }
    }

    public static boolean num(int n){
        int baiwei = n/100;
        int shiwei = n/10%10;
        int gewei = n%100%10;

        if(n == sxh(baiwei)+sxh(shiwei)+sxh(gewei)){
            return true;
        }else {
            return false;
        }
    }

    public static int sxh(int num){

        return num * num * num ;
    }
}
package com.company.Mothod;

/**
 * @Created by IntelliJ IDEA.
 * @Author tk
 * @Date 2019/8/13
 * @Time 10:51
 */

/*
程序2】
 某市的出租車計費標准為:3公里以內10元,3公里以后每
 加0.5公里加收1元;每等待2.5分鍾加收1元;超過15公里
 的加收原價的50%為空駛費。
 要求編寫程序,對於任意給定的里程數(單位:公里)和
 等待時間(單位:秒)計算出應付車費
*/
public class MethodTest08 {
    public static void main(String[] args){

        double licheng = 16.8;
        int waitTime = 200;

        double money = lichengchefei(waitTime,licheng);
        System.out.println("行駛里程:"+licheng+" 等待時間:"+waitTime+" 應付車費:"+money+" 元");

    }

    /*
    計算里程和等待時間所需要的車費
     */
    public static double lichengchefei(int waitTime, double lichen){
       double timeMoney =timeMoney(waitTime);

        double lichengMoney = 0.0;
        if(lichen<=3){
            lichengMoney = 10;
        }else{
            lichengMoney = (int) ((lichen-3)/0.5)*1 +10.0;
            if(lichen > 15){
                lichengMoney *= 1.5;
            }
        }

        double money = timeMoney+lichengMoney;
        return money;
    }

    //計算等待時間所需要的車費
    public static double timeMoney(int waitTime){
        double timeMoney = (waitTime/150)*1;
        return timeMoney;
    }
}
package com.company.Mothod;

/**
 * @Created by IntelliJ IDEA.
 * @Author tk
 * @Date 2019/8/14
 * @Time 10:11
 */

/*
【程序3】
 某電信公司的市內通話費計算標准如下:三分鍾內0.2元,
 三分鍾后每增加一分鍾增加0.1元,不足一分鍾的按一分
 鍾計算。要求編寫程序,給定一個通話時間(單位:秒)
 計算出應收費金額。
*/
public class MethodTest09 {

    public static void main(String[] args){
        int time = 2000;
        double huafei=huafei(time);

        System.out.println("收取費用:"+huafei+" 元");

    }
    public static double huafei(int m){
        double money =0.0;
        if(m<=180){
             money = 0.2;
        }else{
            money = (m-180)/60*0.1+0.2;
            if((m%60)!=1){
                money +=0.1;
            }
        }
        return money;
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM