java高精度开平方
2015-10-23 09:26
441 查看
import java.util.*; import java.math.*; public class Main { public static void main(String[] args) { Scanner cin=new Scanner(System.in); int t=cin.nextInt(); BigInteger remain=BigInteger.ZERO; BigInteger odd=BigInteger.ZERO; BigInteger ans=BigInteger.ZERO; for(int i=0;i<t;i++) { String s=cin.next(); remain=BigInteger.ZERO; odd=BigInteger.ZERO; ans=BigInteger.ZERO; int group=0,k=0; if(s.length()%2==1) { group=s.charAt(0)-'0'; k=-1; } else { group=(s.charAt(0)-'0')*10+s.charAt(1)-'0'; k=0; } for(int j=0;j<(s.length()+1)/2;j++) { if(j!=0) group=(s.charAt(j*2+k)-'0')*10+s.charAt(j*2+k+1)-'0'; odd=BigInteger.valueOf(20).multiply(ans).add(BigInteger.ONE); remain=BigInteger.valueOf(100).multiply(remain).add(BigInteger.valueOf(group)); int count=0; while(remain.compareTo(odd)>=0) { count++; remain=remain.subtract(odd); odd=odd.add(BigInteger.valueOf(2)); } ans=ans.multiply(BigInteger.TEN).add(BigInteger.valueOf(count)); } System.out.println(ans); if(i!=t-1) System.out.println(); } } }
相关文章推荐
- Java基本数据类型
- java开源微博系统weibo4j分享
- 使用JavaMail碰到的几个问题
- eclipse中AndroidA工程依赖B工程设置
- java web项目防止多用户重复登录解决方案
- 如何切换不同版本的JDK
- struts2 拦截器和actioninvocation
- java 桌面路径
- Eclipse包结构显示调整
- java实现文件上传--flash上传
- spring概述以及优点
- java正则表达式学习
- JavaWeb-简单的注册登录例子
- struts工作原理
- Eclipse的Task View使用
- Eclipse 开发java 制作exe可执行文件的方法
- Spring学习笔记之依赖的注解(2)
- Spring学习笔记之依赖的注解(2)
- Java抽象和接口的学习和笔记——黑马训练营
- Java集合框架之Map集合学习和笔记——黑马训练营