Java-計算8+88+888+......前十項之和


思路:

這個題目和前面的階乘相加有相似之處,都需要用中間變量來進行存放數據 我們還寫出來這個題目的前幾個式子,以便我們找出規律

`8*10^0

8*10^0+8*10^1

8*10^0+8*10^1+8*10^2

......`

從這三個式子我們可以看出來,第二個式子的第一項是第一個式子,第三個式子的前兩項是第二個式子 ,也就是說第n個式子(這個式子有m項),前面的m-1項是上一個式子,這樣我們還可以用中間變量加for循環的方法來實現這個計算。 代碼實現:

package com.java_03;
/*
    需求:
        編寫應用程序,使用for循環語句計算8+88+888+...前十項之和
    思路:
        這里和前面的求階乘之和有相似之處
        8
        8+8*10
        8+8*10+8*10*10
        ...
 */
public class Test04_5 {
    public static void main(String[] args) {
        //定義中間變量midnum,中間求和變量sum,初始值num,最終結果endnum
        double midnum = 0;
        double midsum = 0;
        double num = 8;
        double endnum = 0;
        //for循環
        for(int x=0; x<10; x++) {
//Math.pow(底數,指數),求次方
            midnum = num*(Math.pow(10,x));
            sum = sum + midnum;
            endnum +=sum;
        }
        System.out.println(sum);
    }
}

 

 

更新遞歸操作

package com.it_01;

public class Test3 {
    private static long sum=8;
    public static void main(String[] args) {
      f(10);
        System.out.println(sum);
    }
    public static long f(int n) {
        //遞歸出口
        if(n==1) {
            return 8;
        } else {
            sum=sum+f(n-1)*10+8;
            return f(n-1)*10+8;
        }
    }
}

Math包含用於執行基本的數字運算等基本指數、對數、平方根法、三角函數。 我們可以直接調用Math里的pow函數來實現求次方的功能。 Math.pow(double a, double b) :返回a^b,也就是a的b次方


免責聲明!

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



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