大数开根号java模板
2017-04-04 10:13
267 查看
利用逼近的思路直接二分开方找出值
package lanqiao; import java.math.BigInteger; import java.util.Scanner; public class Main { static BigInteger cal(BigInteger x){ BigInteger l = BigInteger.ONE ; BigInteger r = x ; BigInteger temp = BigInteger.ZERO ; while(!l.equals(r)){ BigInteger mid = (l.add(r)).divide(BigInteger.valueOf(2)) ; if(temp.compareTo(BigInteger.ZERO)!=0&&temp.compareTo(mid)==0){ break ; }else{ temp = mid ; } if(temp.compareTo(BigInteger.ZERO)==0){ temp = mid ; } if(mid.multiply(mid).compareTo(x)==1){ r=mid ; }else{ l=mid ; } } if(l.multiply(l).compareTo(x)==1){ l=l.subtract(BigInteger.ONE) ; } return l; } public static void main(String[] args) { // TODO Auto-generated method stub Scanner in = new Scanner(System.in) ; while(in.hasNextBigInteger()){ BigInteger n = in.nextBigInteger() ; BigInteger x = cal(n) ; System.out.println(x); } } }
相关文章推荐
- (模板)JAVA 大数的使用
- 【Java】-BigInteger大数类的使用【超强Java大数模板 总结】
- 大数模板Java
- Multiple of 17(湖南省第六届ACM竞赛题)含有java大数模板
- 2018年全国多校算法寒假训练营练习比赛(第三场)---E---题(大数阶乘(模板题)c++/java/py)
- hdu 5973 Game of Taking Stones java大数+根号5的精度
- hdu4762Cut the Cake(概率+大数操作(java)+C++高精度模板)
- java的大数运算模板
- HDU1042N!大数的阶乘java模板
- 2018年全国多校算法寒假训练营练习比赛(第三场)E---进击吧!阶乘(Java代码,另附Java解决大数问题的模板)
- hdu4762Cut the Cake(概率+大数操作(java)+C++高精度模板)
- java大数模板
- java大数模板
- java处理大数a+b模板
- 总结——Java大数模板应用
- Java大数模板——加法、减法、乘法、除法、开方、求余
- 今天来打打java大数模板(整型)
- 51NOD 1185 威佐夫游戏 V2(大数运算 JAVA 模板)
- Java 大数模板
- Geometric Progression(等比数列的判断+java大数(同时附上别人很完美的C++大数模板))