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