思路:
這個題目和前面的階乘相加有相似之處,都需要用中間變量來進行存放數據 我們還寫出來這個題目的前幾個式子,以便我們找出規律
`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次方