最近做面試題碰到一道題,要求大概是輸出2+22+222+2222+22222...這樣一組數字的和,自己百度一下發現所有答案都有BUG,就是只能計算個位數也就是一位數,兩位以上的計算就有問題,自己整理了下代碼如下:
import java.util.Scanner;
public class a {
public static void caculate(int a, int m) {
int i = 1;
long sum = 0;
long j = 0;
int k = a;
while (i <= m) {
j = j + k;
k = (int) (k * Math.pow(10, String.valueOf(a).length()));
sum = sum + j;
++i;
}
System.out.println("計算后的值是:" + sum);
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("請輸入a的值:");
int a = sc.nextInt(); //a的值類似於題目中的2,如2+22+222中的2。
System.out.println("請輸入m的值:");
int m = sc.nextInt(); //m的值是多少個數相加,如m=2,那么就是2+22。
caculate(a, m);
}
}