java大整数的乘方问题处理
2015-06-07 12:12
513 查看
最近做OJ,发现java自带的类库好像没有大整数乘方的方法,后来自己想了下,可以换一种方式实现:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.math.BigInteger;
/**
* 输入2个自然数a、b相乘后的结果的位数
* a,b大于等于1,小于等于2的64次方
* @author Andy
*
*/
public class Oj_10 {
public static void main(String[] args) {
try {
InputStreamReader is_reader = new InputStreamReader(System.in);
String str = new BufferedReader(is_reader).readLine();
int controlFlag = 0, i = 0;
String[] strs = str.split(" ");
BigInteger bn = new BigInteger(strs[0]);
BigInteger bn1 = new BigInteger(strs[1]);
BigInteger bn2 = new BigInteger("1");
BigInteger bn3 = new BigInteger("2");
BigInteger bn4 = new BigInteger("1");
for (i = 0; i < 64; i++) {
bn4=bn4.multiply(bn3);
}
if ((bn.compareTo(bn2) < 0) || (bn1.compareTo(bn2) < 0)
|| (bn.compareTo(bn4) > 0) || (bn1.compareTo(bn4) > 0)) {
controlFlag = 1;
}
if (controlFlag == 0) {
System.out.println(bn.multiply(bn1).toString().length());
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.math.BigInteger;
/**
* 输入2个自然数a、b相乘后的结果的位数
* a,b大于等于1,小于等于2的64次方
* @author Andy
*
*/
public class Oj_10 {
public static void main(String[] args) {
try {
InputStreamReader is_reader = new InputStreamReader(System.in);
String str = new BufferedReader(is_reader).readLine();
int controlFlag = 0, i = 0;
String[] strs = str.split(" ");
BigInteger bn = new BigInteger(strs[0]);
BigInteger bn1 = new BigInteger(strs[1]);
BigInteger bn2 = new BigInteger("1");
BigInteger bn3 = new BigInteger("2");
BigInteger bn4 = new BigInteger("1");
for (i = 0; i < 64; i++) {
bn4=bn4.multiply(bn3);
}
if ((bn.compareTo(bn2) < 0) || (bn1.compareTo(bn2) < 0)
|| (bn.compareTo(bn4) > 0) || (bn1.compareTo(bn4) > 0)) {
controlFlag = 1;
}
if (controlFlag == 0) {
System.out.println(bn.multiply(bn1).toString().length());
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
相关文章推荐
- Struts2中的链接标签 <s:url>和<s:a>---在action中获取jsp表单提交的参数(转)
- JNDI介绍
- spring集成jpa【为什么有 persistant.xml 文件呢?】
- hdu 3887 Counting Offspring
- hdu 3887 Counting Offspring
- Spring MVC 教程
- Java异常
- Java 设计模式
- Spring实战3-Spring之旅
- Struts2+ExtJS+Ajax 登录操作例子
- 用struts2 完成一个简单的通讯录,实现增删改查,分页,文件上传(头像),表单验证(两种方法)
- 【j2ee spring】27、巴巴运动网-整合hibernate4+spring4(2)
- Java的反射机制
- 【j2ee spring】26、巴巴运动网-整合hibernate4(1)
- Java泛型的一些限制
- Java equals的一个坑
- javaweb生成验证码图片
- java中各种集合的用法和比较
- NetBeans java 编译时提示使用了未经检查或不安全的操作
- java 内部类整理学习