最近做面试题碰到一道题,要求大概是输出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);
}
}