UVa10023手动开大数平方算法
2015-08-12 11:58
330 查看
题目链接:UVa 10023
import java.math.BigInteger; import java.util.Scanner; public class Main { public static void sqrt(BigInteger bi){ String str; str=bi.toString(); int m=str.length(); if(m%2!=0) str="0"+str; BigInteger a,b,c,d,ans; b=BigInteger.valueOf(0); c=BigInteger.valueOf(0); ans=BigInteger.valueOf(0); try{ for(int i=0;i<m;i+=2){ a=b.multiply(new BigInteger("100")).add(new BigInteger(str.substring(i,i+2))); for(int j=0;j<10;j++){ d=c.multiply(new BigInteger("20")).add(BigInteger.valueOf(j+1)).multiply(BigInteger.valueOf(j+1)); if(d.compareTo(a)>0){ c=c.multiply(new BigInteger("20")).add(BigInteger.valueOf(j)).multiply(BigInteger.valueOf(j)); b=a.subtract(c); ans=ans.multiply(new BigInteger("10")).add(BigInteger.valueOf(j)); c=ans; break; } } } }catch(Exception e){ e.getStackTrace(); } System.out.println(ans); } public static void main(String args[]){ Scanner cin=new Scanner(System.in); int n; n=cin.nextInt(); for(int k=0;k<n;k++){ if(k!=0) System.out.println(); sqrt(cin.nextBigInteger()); } } }
相关文章推荐
- Linux下find命令用法小结
- 在qt中碰到了suze
- 页面登录密码加密传输机制
- linux(debian/ubuntu)下连接安卓手机--小米4为例
- tomcat connector运行模式,优化tomcat运行性能
- C++指针
- Deep Analysis UIImageJPEGRepresentation&UIImagePNGRepresentation
- 常用开源整理
- <context-param>的作用
- Python3.x urllib
- 制作企业网站要关注哪些问题
- android中canvas的clipRect和concate调用顺序不同导致的图像效果不同。
- Linux下各种性能监控的命令(整理)
- HDU5374 Tetris (2015年多校比赛第7场)大模拟
- ios读取系统相册以及获取图片的名字
- springMVC学习笔记---注解优化
- 自定义VIEW
- Sonar Qube QA
- 数组指针和指针数组的区别
- 2015.8.12