歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Java之數組計算大數相乘

Java之數組計算大數相乘

日期:2017/3/1 10:55:45   编辑:Linux編程

Java之數組計算大數相乘

  1. public class ArrayMulti {
  2. public static void main(String[] args) throws Exception {
  3. // TODO Auto-generated method stub
  4. int[] date = new int[100000];
  5. date[1] = 1;
  6. int weishu = 1; // 求出來的值的位數
  7. System.out.println("------用數組解決大數問題---------");
  8. System.out.println("求n!的值");
  9. System.out.print("n=");
  10. Scanner cin = new Scanner(System.in);
  11. int n = cin.nextInt();
  12. for (int i = 1; i <= n; i++) {
  13. for (int j = 1; j <= weishu; j++) {
  14. date[j] = date[j] * i;
  15. }
  16. // 確保除最高位外的每位不大於9
  17. for (int j = 1; j < weishu; j++) {
  18. if (date[j] >= 10) {
  19. date[j + 1] += date[j] / 10;
  20. date[j] = date[j] % 10;
  21. }
  22. }
  23. // 確保最高位不大於9
  24. while (date[weishu] >= 10) {
  25. weishu++;
  26. date[weishu] += date[weishu - 1] / 10;
  27. date[weishu - 1] = date[weishu - 1] % 10;
  28. }
  29. }
  30. System.out.print(n + "!= ");
  31. for (int k = weishu; k >= 1; k--) {
  32. System.out.print(date[k]);
  33. }
  34. System.out.println("");
  35. }
  36. }
Copyright © Linux教程網 All Rights Reserved