利用JAVA實現2+22+222+2222+22222的問題
阿新 • • 發佈:2019-01-04
如果指定基數為2,次數為5, 則求2+22+222+2222+22222的值
分析
這個問題乍眼一看是有點麻煩的,但是靜下來仔細分析還是有一些門路的。
我們從每一項中可以總結出規律:
項數n | 值a | 拆分 |
---|---|---|
1 | 2 | 0*10+2=2 |
2 | 22 | 2*10+2=22 |
3 | 222 | 22*10+2=222 |
4 | 2222 | 2222*10+2=2222 |
5 | 22222 | 22222*10+2=22222 |
… | …… | ….. |
n | 2222222… | [第(n-1)項的a]*10+a |
將這個問題分析透徹,整個問題就很簡單了。
首先我們需要設定兩個變數,分別為a和sum。變數a是用來存放計算出來每一項所對應的值,而變數sum則是起到了一個累加的作用。至於迴圈結構的話就用簡單的for()
迴圈來完成,題目要求是有5項,則迴圈次數為5次,那麼我們就可以寫出以下的原始碼
package com.tencentos; public class Week1homework3 { public static void main(String[] args) { int a=0,sum=0; for(int n=1;n<=5;n++) { a=(a*10)+2; sum+=a; } System.out.print("sum="+sum); } }
每當變數a進行完運算後都會存放到變數sum當中,這裡的sum起到了一個累加器的作用,最終輸出變數sum就可以了。輸出的結果如下
其實在這個題的基礎上,我們可以進一步的升級,基數與累加次數都可以我們人為的設定,進而可以增加與使用者之間的互動性。在這裡我們可以設定基數為x,累加次數定為y,這裡的x與y都是使用者所敲入的,其實也沒什麼難度,就是在上述程式碼中加入Scanner
工具即可,不過微微這麼一變動,整個程式就變的不那麼死板了。修改後的原始碼如下
package com.tencentos; import java.util.Scanner; public class Week1homework3 { public static void main(String[] args) { Scanner scan=new Scanner(System.in); System.out.print("Please input the basic number:"); int x=scan.nextInt(); System.out.print("Please input the times:"); int y=scan.nextInt(); int a=0,sum=0; for(int n=1;n<=y;n++) { a=(a*10)+x; sum+=a; } System.out.print("sum="+sum); scan.close(); } }
測試結果如下
Enjoy it~