示范高精度整数算术与BigInteger : 长整型数 « 数据类型 « Java

En
Java
1. 图形用户界面
2. 三维图形动画
3. 高级图形
4. 蚂蚁编译
5. Apache类库
6. 统计图
7. 
8. 集合数据结构
9. 数据类型
10. 数据库JDBC
11. 设计模式
12. 开发相关类
13. EJB3
14. 电子邮件
15. 事件
16. 文件输入输出
17. 游戏
18. 泛型
19. GWT
20. Hibernate
21. 本地化
22. J2EE平台
23. 基于J2ME
24. JDK-6
25. JNDI的LDAP
26. JPA
27. JSP技术
28. JSTL
29. 语言基础知识
30. 网络协议
31. PDF格式RTF格式
32. 映射
33. 常规表达式
34. 脚本
35. 安全
36. Servlets
37. Spring
38. Swing组件
39. 图形用户界面
40. SWT-JFace-Eclipse
41. 线程
42. 应用程序
43. Velocity
44. Web服务SOA
45. 可扩展标记语言
Java 教程
Java » 数据类型 » 长整型数屏幕截图 
示范高精度整数算术与BigInteger
示范高精度整数算术与BigInteger
 
/*
Java Programming for Engineers
Julio Sanchez
Maria P. Canton


ISBN: 0849308100
Publisher: CRC Press
*/


// Java for Engineers
//Filename: BigIFact
//Reference: Chapter 22
//Description:
//         Demonstration of high-precision integer arithmetic
//         with the BigInteger class. Program calculates the
//         factorial of a big integer number
//Requires:
//         Keyin class in current directory

import java.math.BigInteger;

public class BigIFact {
  public static void main(String[] args) {

    int v; // Input
    BigInteger p = BigInteger.valueOf(1)// Factor

    System.out.println("Big integer factorial routine\n");
    v = Keyin.inInt("Enter value: ");

    // Calculate factorial by iteration
    for (int i = 1; i <= v; i++)
      p = p.multiply(BigInteger.valueOf(i));
    // Display result
    System.out.println(p);
  }
}

//**********************************************************
//**********************************************************
//Program: Keyin
//Reference: Session 20
//Topics:
//1. Using the read() method of the ImputStream class
//in the java.io package
//2. Developing a class for performing basic console
//input of character and numeric types
//**********************************************************
//**********************************************************

class Keyin {

  //*******************************
  //   support methods
  //*******************************
  //Method to display the user's prompt string
  public static void printPrompt(String prompt) {
    System.out.print(prompt + " ");
    System.out.flush();
  }

  //Method to make sure no data is available in the
  //input stream
  public static void inputFlush() {
    int dummy;
    int bAvail;

    try {
      while ((System.in.available()) != 0)
        dummy = System.in.read();
    catch (java.io.IOException e) {
      System.out.println("Input error");
    }
  }

  //********************************
  //  data input methods for
  //string, int, char, and double
  //********************************
  public static String inString(String prompt) {
    inputFlush();
    printPrompt(prompt);
    return inString();
  }

  public static String inString() {
    int aChar;
    String s = "";
    boolean finished = false;

    while (!finished) {
      try {
        aChar = System.in.read();
        if (aChar < || (charaChar == '\n')
          finished = true;
        else if ((charaChar != '\r')
          s = s + (charaChar; // Enter into string
      }

      catch (java.io.IOException e) {
        System.out.println("Input error");
        finished = true;
      }
    }
    return s;
  }

  public static int inInt(String prompt) {
    while (true) {
      inputFlush();
      printPrompt(prompt);
      try {
        return Integer.valueOf(inString().trim()).intValue();
      }

      catch (NumberFormatException e) {
        System.out.println("Invalid input. Not an integer");
      }
    }
  }

  public static char inChar(String prompt) {
    int aChar = 0;

    inputFlush();
    printPrompt(prompt);

    try {
      aChar = System.in.read();
    }

    catch (java.io.IOException e) {
      System.out.println("Input error");
    }
    inputFlush();
    return (charaChar;
  }

  public static double inDouble(String prompt) {
    while (true) {
      inputFlush();
      printPrompt(prompt);
      try {
        return Double.valueOf(inString().trim()).doubleValue();
      }

      catch (NumberFormatException e) {
        System.out
            .println("Invalid input. Not a floating point number");
      }
    }
  }
}
           
         
  
Related examples in the same category
1. BigInteger.isProbablePrime
2. 计算回文
3. Operating with Big Integer Values
4. 通过字符串创建BigInteger
5. 创建BigInteger通过长期类型变量
6. 
7. 
8. Divide one BigInteger from another BigInteger
9. 否定一BigInteger
10. Calculate the power on a BigInteger
11. 从字节数组创建BigInteger
12. Performing Bitwise Operations with BigInteger
13. Get the value of a bit
14. 设定位为BigInteger
15. Clear a bit in a BigInteger
16. Flip a bit in a BigInteger
17. Shift the bits in a BigInteger
18. 移权的BigInteger
19. 异或BigInteger
20. and operation on BigInteger
21. not operation for BigInteger
22. or operation for BigInteger
23. antNot operation on BigInteger
24. Retrieve the current bits in a byte array in twos-complement form.
25. Parsing and Formatting a Big Integer into Binary
26. 解析和格式化大整数到八进制
27. 解析和格式化大整数到小数
28. 解析和格式为十六进制
29. Parse and format to arbitrary radix <= Character.MAX_RADIX
30. 创建一个BigInteger使用字节数组
31. 解析和格式化成二进制字节数组
32. 解析和格式的字节数组到八进制
33. 解析和格式的字节数组到小数点
34. 解析和格式的字节数组到十六进制
35. 解析二进制字符串
36. 获取字节数组从BigInteger
37. 解析八进制字符串,创建BigInteger
38. 解析十进制字符串,创建BigInteger
39. 解析十六进制字符串,创建BigInteger
40. Convert BigInteger into another radix number
41. Do math operation for BigInteger
42. Operate with big integer values in code
www.java2java.com | Contact Us
Copyright 2010 - 2030 Java Source and Support. All rights reserved.
All other trademarks are property of their respective owners.