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));}
}
JAVA应试技巧----大数开方相关推荐
- 大数开方(Java版)
题目:大数开方 Java代码:适合被开方数不超过1000位的. import java.util.*; import java.math.*; public class Main { public s ...
- java中大数开方_Java中的大数运算
# 一:大数运算出现的背景 java里面整型int与浮点型float,double它们存放数据的范围是有限的,当出行更大的数值时会发生溢出. 最典型的场景是金融行业,直接使用单精度或者双精浮点数来表示 ...
- ACM-ICPC 2018 焦作赛区网络预赛_J_ Participate in E-sports_Java大数开方
传送门 题意:求n和 1+2+3+-.+(n-1) 这两个数字是不是完全平方数. 思路:大数开方,似乎是板子太弱了,在做第二个数字的时候T掉了,然后我就思考下满足(n-1)*n/2为完全平方数的数字并 ...
- 偏执却管用的 10 条 Java 编程技巧
经过一段时间的编码(咦,我已经经历了将近20年的编程生涯,快乐的日子总是过得很快),我们开始感谢那些好习惯.因为,你知道- "任何可能出错的事情,最后都会出错." 这就是人们为什么 ...
- Java 编程技巧之数据结构
Photo @markusspiske 文 | 常意 导读 唐宋八大家之一欧阳修在<卖油翁>中写道: 翁取一葫芦置于地,以钱覆其口,徐以杓酌油沥之,自钱孔入,而钱不湿.因曰:"我 ...
- 不符合条件重新输入 c语言,2016年计算机考试上机应试技巧
原标题:2016年计算机考试上机应试技巧 掌握好计算机考试()上机应试技巧,可以使考生的实际水平在考试时得到充分发挥,从而取得较为理想的成绩.历次考试均有考生因为忽略了这一点,加之较为紧张的考场气氛影 ...
- 国二计算机考试技巧,全国计算机等级考试上机考试应试技巧(二)
DOS允许在命令中出现用竖线字符"|"分开的多个命令,将符号"|"之前的命令的输出,作为"|"之后命令的输入,这就是"管道功能&q ...
- Java培训分享:8个优秀的Java编程技巧
Java是目前最流行的编程语言之一--它可以用来编写Windows程序或者是Web应用,移动应用,网络程序,消费电子产品,机顶盒设备,它无处不在. 有超过30亿的设备是运行在Java之上的.根据Ora ...
- 一些Java面试技巧分享,你不能错过!
很多人在学会java技术之后,就开始筹备自己的面试了,java技术在互联网行业的需求是很大的,所以内卷是很严重的,在面试环节一定要全力以赴才行,下面小编就教大家一些java面试技巧,希望能帮助到大家. ...
最新文章
- 机器学习PAL数据预处理
- CentOS搭建msmtp+mutt实现邮件发送
- 添加MySql用户并授权
- php 置信区间 计算,科学网—置信区间和标准误差 - 邸月宝的博文
- 珠宝条码打印扫描解决方案
- Docker: Jenkins里的pipeline编写基本技巧
- Java图形开发--GUI
- 浪潮服务器 NF 8460M4 的PM8060 RAID卡设置添加热备方法
- 支撑EB级规模的大数据平台深度揭秘
- C++ ------------------- string类介绍
- 精选| 2019年6月R新包推荐(第31期)
- System.Web.Mvc.UrlHelper的学习与使用
- PC版Android系统声卡驱动,android下调试声卡驱动之概述
- unity中世界坐标与局部坐标
- 爬虫字体替换(一)天眼查
- “第二课堂”开课啦~
- MIT CMS.300 Session 5 – UNWRITTEN RULES 游戏的潜在规则
- 快速排序讲解+示意图
- Vue + Spring Boot 项目实战(十五):动态加载后台菜单
- 信息系统分析与设计 第九章 系统设计概述