BZOJ 高精度开根 JAVA代码
晓华所在的工作组正在编写一套高精度科学计算的软件,一些简单的部分如高精度加减法、乘除法早已写完了,现在就剩下晓华所负责的部分:实数的高精度开m次根。因为一个有理数开根之后可能得到一个无理数,所以这项工作是有较大难度的。现在要做的只是这项工作的第一步:只对自然数进行开整数次根,求出它的一个非负根,并且不考虑结果的小数部分,只要求把结果截断取整即可。程序需要根据给定的输入,包括需要开根的次数,以及被开根的整数;计算出它的非负根取整后的结果。
Input
共有两行,每行都有一个整数,并且输入中没有多余的空格:第一行有一个正整数m (1 <= m <= 50),表示要开的根次;第二行有一个整数n (0<=n <= 10^10000),表示被开根的数。
Output
只有一行,包括一个数,即为开根取整后的结果。
Sample Input
3
1000000000
Sample Output
1000
import java.util.*;
import java.io.*;
import java.math.*;
public class Main
{
public static BigInteger check(BigInteger n,BigInteger x)
{
BigInteger ans=BigInteger.valueOf(1);
BigInteger a=BigInteger.valueOf(1);
for(BigInteger i=BigInteger.ZERO;i.compareTo(n)<0;i=i.add(a))
{
ans=ans.multiply(x);
}
return ans;
}
public static void main(String[] args)
{
Scanner cin=new Scanner(System.in);
BigInteger n=cin.nextBigInteger();
BigInteger m=cin.nextBigInteger();
BigInteger l=BigInteger.ZERO;
BigInteger a=BigInteger.valueOf(2);
BigInteger b=BigInteger.valueOf(1);
BigInteger r=BigInteger.valueOf(1);
BigInteger mid=BigInteger.ZERO;
while(check(n,r).compareTo(m)<=0)
{
l=r;
r=r.multiply(a);
}
while(l.compareTo(r)<=0)
{
mid=l.add(r).divide(a);
if(check(n,mid).compareTo(m)<=0) l=mid.add(b);
else r=mid.subtract(b);
}
System.out.println(r.toString());
}
}
BZOJ 高精度开根 JAVA代码的更多相关文章
- BZOJ 1213: [HNOI2004]高精度开根
二次联通门 : BZOJ 1213: [HNOI2004]高精度开根 正解 NTT+高精+倍增+二分 但是可以用python 2333333 m,n=int(raw_input()),int(raw_ ...
- 【BZOJ1213】高精度开根
python是坠吼的! 原题: 不贴原题,就是高精度开根,结果向下取整 首先二分答案,高精度嘛……python即可 二分右端点设为n会T掉,需要先倍增一个r,while(r **m <= n) ...
- 洛谷 - P2293 - 高精度开根 - 高精度
https://www.luogu.org/problemnew/show/P2293 要求求出给定高精度整数的非负根取整的结果. 还有神仙用Python的浮点pow运算骗到不少分的. 唉! 那么我们 ...
- [HNOI2004]高精度开根
题目:洛谷P2293.BZOJ1213. 题目大意:给你$n,k(n\leq 10^{10000},k\leq 50)$,求$\lfloor \sqrt[k]{n}\rfloor$. 解题思路:高精度 ...
- Yroot of High-Precisions (luogu P2293 [HNOI2004]高精度开根)
Background\text{Background}Background I've accepted\text{I've accepted}I've accepteda very good prob ...
- android开发之java代码中字符串对比忽略大小写。java程序员必回,可用来比对验证码等问题
比如:字符串a与字符串B对比,只需调用 a.equalsIgnoreCase(B);即可.很简单的一个方法.忽略大小写.
- Android开发之java代码工具类。判断当前网络是否连接并请求下载图片
package cc.jiusan.www.utils; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; ...
- Android开发之java代码中获取当前系统的时间工具类
/** * 获取当前时间 * * @return */ public String getTime() { Date date = new Date();// 创建一个时间对象,获取到当前的时间 Si ...
- android开发之java代码中如何获取到当前时间。详情代码带注释。
/** *获取当前时间 * @return */ public String getTime(){ Date date= new Date();//创建一个时间对象,获取到当前的时间 SimpleDa ...
随机推荐
- vscode 问题
*)不能切换为中文输入法 没有搜索到解决办法,重启应用解决
- HTML学习----------DAY1 第一节
什么是 HTML? HTML 是用来描述网页的一种语言. HTML 指的是超文本标记语言 (Hyper Text Markup Language) HTML 不是一种编程语言,而是一种标记语言 (ma ...
- ArcGIS api for javascript——以地理处理结果为条件查询地图
这里发生什么任务呢?当第一次单击地图,单击的坐标被发送到一个Geoprocessor任务.该任务访问服务器上的通过ArcGIS Server 地理处理服务提供的可用的GIS模型.本例中模型计算驱动时间 ...
- java 究竟老年代和年轻代的比例为多大合适呢?
眼下我还没有这方面过多的经验,和切身体会 只是以我眼下的水平看来,年轻代不宜大,假设年轻代大会导致转为老年代的时候,老年代撑不下.导致full gc.回收停顿时间过长
- 解决Struts中文乱码问题总结
在进行struts开发的过程中.总也是出现非常多的乱码问题.但归根究竟,也仅仅是下面三种情况: ㈠页面显示中文乱码 ㈡传递參数中文乱码 ㈢国际化资源文件乱码 以下就这三中情况介绍怎么在详细项目 ...
- java音乐播放之IO流处理
这个类仅仅能一直播放.知道音乐结束. 比AudioCilp要好一点. import java.io.*; import javax.sound.sampled.*; public class Test ...
- 惊叹计算机运行速度的提升---以n Queens 问题为例
1 介绍 实现了书<Data Structures and Program design in C++>(Robert L. Kruse and Alexander J. Ryba, 20 ...
- 优化时序之补全if else
时序优化中重要的一项就是提高模块的最高工作频率,工作频率由关键路径决定,通常的提高工作频率的步骤是:利用时序分析工具找到关键路径,分析关键路径主要延迟是布线延迟还是逻辑延迟,然后轮番十八般武器,如果是 ...
- Error 0x80070020 when you try to start a Web site in IIS 7.0
https://support.microsoft.com/en-hk/help/973094/error-0x80070020-when-you-try-to-start-a-web-site-in ...
- Controller接口控制器
1.Controller简介 Controller控制器,是MVC中的部分C,为什么是部分呢?因为此处的控制器主要负责功能处理部分: 1.收集.验证请求参数并绑定到命令对象: 2.将命令对象交给业务对 ...