JAVA应试技巧----大数开方

大数开方--牛顿迭代法:

如果一个数的位数为偶数个,那么这个数开方之后就有n/2位;

如果一个数的位数为奇数个,那么这个数开方之后就有n/2+1位;

我们以num=1000为例,位数为4,偶数,那么开方之后就有2位。我们从高位开始枚举。

首先枚举十位:

10*10=100 < 1000

20*20=400 < 1000

30*30=900 < 1000

40*40=1600 > 1000

则十位数字为3

枚举各位:

31*31=961 < 1000

32*32 =1024 > 1000

则个位数字为1

所以开方1000的结果为31。

下面的代码思路和上面的例子基本一样,稍加理解即可。其中要注意变量类型的选择和转换。

import java.math.BigInteger;
import java.util.Arrays;
import java.util.Scanner;public class Main {static String n;public static void main(String[] args) {Scanner in = new Scanner(System.in);n = in.next();int length= n.length();int sqrtLen = 0;if (length % 2 == 0) {sqrtLen = length / 2;} else {sqrtLen = length / 2 + 1;}char[] ch = new char[sqrtLen];Arrays.fill(ch, '0');BigInteger beSqrtNum = new BigInteger(n);for (int i = 0; i < sqrtLen; i++) {for (char j = '1'; j <= '9'; j++) {ch[i] = j;String s = String.valueOf(ch);BigInteger sqrtNum = new BigInteger(s);BigInteger squareNum = sqrtNum.multiply(sqrtNum);if (squareNum.compareTo(beSqrtNum) == 1) {ch[i] -= 1;break;}}}System.out.println(String.valueOf(ch));}
}


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/569700.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

蓝桥杯历届试题----矩阵翻硬币

矩阵翻硬币 问题描述 小明先把硬币摆成了一个 n 行 m 列的矩阵。随后&#xff0c;小明对每一个硬币分别进行一次 Q 操作。对第x行第y列的硬币进行 Q 操作的定义&#xff1a;将所有第 i*x 行&#xff0c;第 j*y 列的硬币进行翻转。其中i和j为任意使操作可行的正整数&#xff0…

并发队列、线程池、锁

1、CountDownLatch(计数器) CountDownLatch 类位于java.util.concurrent包下&#xff0c;利用它可以实现类似计数器的功能。比如有一个任务A&#xff0c;它要等待其他任务执行完毕之后才能执行&#xff0c;此时就可以利用CountDownLatch来实现这种功能了。CountDownLatch是…

POJ 1088----滑雪(DP)

原题连接&#xff1a;http://poj.org/problem?id1088 Description Michael喜欢滑雪百这并不奇怪&#xff0c; 因为滑雪的确很刺激。可是为了获得速度&#xff0c;滑的区域必须向下倾斜&#xff0c;而且当你滑到坡底&#xff0c;你不得不再次走上坡或者等待升降机来载你。Mic…

Vijos 1603 ----迷宫(矩阵乘法,矩阵快速幂)

描述 在某个神秘的星球上有一个游乐园 游乐园里有一个奇怪的迷宫&#xff0c;迷宫内有n个点&#xff0c;每个点之间都可能会有一条有向边&#xff08;可能会有自环&#xff09; 现在游乐园主有个问题想请你帮忙&#xff1a; 问&#xff1a;从s点走到f点&#xff0c;恰好走过…

蓝桥杯第六届省赛JAVA真题----循环节长度

循环节长度 两个整数做除法&#xff0c;有时会产生循环小数&#xff0c;其循环部分称为&#xff1a;循环节。 比如&#xff0c;11/136>0.846153846153….. 其循环节为[846153] 共有6位。 下面的方法&#xff0c;可以求出循环节的长度。 请仔细阅读代码&#xff0c;并填写…

蓝桥杯第六届省赛JAVA真题----打印菱形

打印菱形 给出菱形的边长&#xff0c;在控制台上打印出一个菱形来。 为了便于比对空格&#xff0c;我们把空格用句点代替。 当边长为8时&#xff0c;菱形为&#xff1a; .......* ......*.* .....*...* ....*.....* ...*.......* ..*.........* .*...........* *..........…

蓝桥杯第六届省赛JAVA真题----生命之树

生命之树 在X森林里&#xff0c;上帝创建了生命之树。 他给每棵树的每个节点&#xff08;叶子也称为一个节点&#xff09;上&#xff0c;都标了一个整数&#xff0c;代表这个点的和谐值。 上帝要在这棵树内选出一个非空节点集S&#xff0c;使得对于S中的任意两个点a,b&#…

蓝桥杯第七届省赛JAVA真题----剪邮票

剪邮票 如【图1.jpg】, 有12张连在一起的12生肖的邮票。 现在你要从中剪下5张来&#xff0c;要求必须是连着的。 &#xff08;仅仅连接一个角不算相连&#xff09; 比如&#xff0c;【图2.jpg】&#xff0c;【图3.jpg】中&#xff0c;粉红色所示部分就是合格的剪取。 请你…

PAT甲级1080 Graduate Admission【模拟】

题目&#xff1a;https://pintia.cn/problem-sets/994805342720868352/problems/994805387268571136 题意&#xff1a; 模拟高考志愿录取。 考生根据总成绩和高考成绩排名。根据排名往下录取&#xff0c;每个人有k个志愿。 如果他填的学校名额没有满&#xff0c;那么就可以被录…

蓝桥杯第三届省赛JAVA真题----取球博弈

题目描述 今盒子里有n个小球&#xff0c;A、B两人轮流从盒中取球&#xff0c;每个人都可以看到另一个人取了多少个&#xff0c;也可以看到盒中还剩下多少个&#xff0c;并且两人都很聪明&#xff0c;不会做出错误的判断。 我们约定&#xff1a; 每个人从盒子中取出的球的数目…

目标检测之YOLO V2 V3

YOLO V2 YOLO V2是在YOLO的基础上&#xff0c;融合了其他一些网络结构的特性&#xff08;比如&#xff1a;Faster R-CNN的Anchor,GooLeNet的\(1\times1\)卷积核等&#xff09;&#xff0c;进行的升级。其目的是弥补YOLO的两个缺陷&#xff1a; YOLO中的大量的定位错误和基于区域…

蓝桥杯第五届省赛JAVA真题----n级台阶

有n级台阶。从地面&#xff08;第0级&#xff09;出发&#xff0c;首先连续的上台阶&#xff0c;上到不超过第n级的某一个位置后再连续的下台阶&#xff0c;直到回到地面。若每次上下台阶只允许走1级或2级&#xff0c;请问可能的上下台阶的方案数是多少&#xff1f; 特别地&am…

ubuntu下安装oracle

开源的世界挺有意思&#xff0c;安装oracle如此复杂。 主要分为四个大步骤&#xff1a; Java的安装Oracle安装前的准备Oracle的安装环境配置安装Oracle1、Java安装&#xff08;略&#xff09; 这一步网上有好多教程&#xff0c;大家可以自行安装。 验证Java是否安装成功&#x…

蓝桥杯第五届省赛JAVA真题----七对数字

今有7对数字&#xff1a;两个1&#xff0c;两个2&#xff0c;两个3&#xff0c;…两个7&#xff0c;把它们排成一行。 要求&#xff0c;两个1间有1个其它数字&#xff0c;两个2间有2个其它数字&#xff0c;以此类推&#xff0c;两个7之间有7个其它数字。如下就是一个符合要求的…

liunx-mysql-password重置(初始化)

1 #!/bin/bash #开头必写2 3 #数据库密码初始化4 pwd"admin"5 mysql -uroot <<EOF6 use mysql;7 UPDATE user SET passwordpassword(${pwd}) WHERE userroot;8 flush privileges;9 exit 10 EOF 转载于:https://www.cnblogs.com/CWQPHP/p/10484101.html

NCRE四级网络工程师考题详解----三级索引结构

在一个采用三级索引结构的UNIX 文件系统中&#xff0c;假设物理块大小为1KB&#xff0c;用64位表示一个物理块号。主索引表含有13 个块地址指针&#xff0c;其中前10 个直接指向盘块号&#xff0c;第11 个指向一级索引表&#xff0c;第12 个指向二级索引表&#xff0c;第13 个指…

laravel5单元测试

https://www.cnblogs.com/love-snow/articles/7641198.html转载于:https://www.cnblogs.com/anqiphp/p/10490767.html

NCRE四级网络工程师考题详解----目录分解法

在实现文件系统时&#xff0c;可采用"目录项分解法"加快文件目录检索速度。假设目录文件存放在磁盘上&#xff0c;每个盘块 512 字节。文件控制块有 64 字节&#xff0c;其中文件名占 8 字节&#xff0c;文件控制块分解后&#xff0c;第一部分占有 10 字节&#xff0…

自关联

设计省信息的表结构provinces idptitle 设计市信息的表结构citys idctitleproid citys表的proid表示城市所属的省&#xff0c;对应着provinces表的id值 问题&#xff1a; 能不能将两个表合成一张表呢&#xff1f; 思考&#xff1a; 观察两张表发现&#xff0c;citys表比provinc…

NCRE四级网络工程师考题详解----对等计算模型(P2P)

对等计算模型&#xff08;P2P&#xff09;: 在这种模型中&#xff0c;所有的计算机都可以当服务器。用中心服务器存放各个资源的目录。持续运转。以Napster为代表。 分布式非结构化P2P网络&#xff0c;没有中心服务器&#xff0c;采用泛洪方式&#xff0c;负载很重&#xff0c…