当两个比较大的整数相乘时,可能会出现数据溢出的情形。为避免溢出,可以采用字符串的方法来实现两个大数之间的乘法。具体来说,首先以字符串的形式输入两个整数,每个整数的长度不会超过8位,然后把它们相乘的结果存储在另一个字符串当中(长度不会超过16位),最后把这个字符串打印出来。例如,假设用户输入为:62773417和12345678,则输出结果为:774980393241726.
输入:
62773417 12345678
输出:
输入:
62773417 12345678
输出:
774980393241726
关于Decimal的常用方法:
| public BigDecimal(double val) | 将double表示形式转换 为BigDecimal |
| public BigDecimal(int val) | 将int表示形式转换为 BigDecimal |
| public BigDecimal(String val) | 将字符串表示 形式转换为BigDecimal |
| public BigDecimal add(BigDecimal augend) | 加法 |
| public BigDecimal subtract(BigDecimal subtrahend) | 减法 |
| public BigDecimal multiply(BigDecimal multiplicand) | 乘法 |
| public BigDecimal divide(BigDecimal divisor) | 除法 |
import java.math.BigDecimal;
import java.util.Scanner;
public class Main {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
int a=in.nextInt();
int b=in.nextInt();
BigDecimal a1=new BigDecimal(a);
BigDecimal b1=new BigDecimal(b);
System.out.println(a1.multiply(b1).toString());
}
} 此篇文章转自http://blog.youkuaiyun.com/qq_21385857/article/details/50865548

本文介绍了一种使用字符串实现大数乘法的方法,避免了整数溢出的问题,并提供了Java代码示例。输入两个不超过8位的整数,输出不超过16位的乘积。
3491

被折叠的 条评论
为什么被折叠?



