java程序计算2+22+222+...问题完美答案

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

   }

}

posted @ 2017-06-21 09:56  庸人何自扰  阅读(2121)  评论(3编辑  收藏  举报