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);

   }

}


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM