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

如果一个数的位数为偶数个,那么这个数开方之后就有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应试技巧----大数开方相关推荐

  1. 大数开方(Java版)

    题目:大数开方 Java代码:适合被开方数不超过1000位的. import java.util.*; import java.math.*; public class Main { public s ...

  2. java中大数开方_Java中的大数运算

    # 一:大数运算出现的背景 java里面整型int与浮点型float,double它们存放数据的范围是有限的,当出行更大的数值时会发生溢出. 最典型的场景是金融行业,直接使用单精度或者双精浮点数来表示 ...

  3. ACM-ICPC 2018 焦作赛区网络预赛_J_ Participate in E-sports_Java大数开方

    传送门 题意:求n和 1+2+3+-.+(n-1) 这两个数字是不是完全平方数. 思路:大数开方,似乎是板子太弱了,在做第二个数字的时候T掉了,然后我就思考下满足(n-1)*n/2为完全平方数的数字并 ...

  4. 偏执却管用的 10 条 Java 编程技巧

    经过一段时间的编码(咦,我已经经历了将近20年的编程生涯,快乐的日子总是过得很快),我们开始感谢那些好习惯.因为,你知道- "任何可能出错的事情,最后都会出错." 这就是人们为什么 ...

  5. Java 编程技巧之数据结构

    Photo @markusspiske 文 | 常意 导读 唐宋八大家之一欧阳修在<卖油翁>中写道: 翁取一葫芦置于地,以钱覆其口,徐以杓酌油沥之,自钱孔入,而钱不湿.因曰:"我 ...

  6. 不符合条件重新输入 c语言,2016年计算机考试上机应试技巧

    原标题:2016年计算机考试上机应试技巧 掌握好计算机考试()上机应试技巧,可以使考生的实际水平在考试时得到充分发挥,从而取得较为理想的成绩.历次考试均有考生因为忽略了这一点,加之较为紧张的考场气氛影 ...

  7. 国二计算机考试技巧,全国计算机等级考试上机考试应试技巧(二)

    DOS允许在命令中出现用竖线字符"|"分开的多个命令,将符号"|"之前的命令的输出,作为"|"之后命令的输入,这就是"管道功能&q ...

  8. Java培训分享:8个优秀的Java编程技巧

    Java是目前最流行的编程语言之一--它可以用来编写Windows程序或者是Web应用,移动应用,网络程序,消费电子产品,机顶盒设备,它无处不在. 有超过30亿的设备是运行在Java之上的.根据Ora ...

  9. 一些Java面试技巧分享,你不能错过!

    很多人在学会java技术之后,就开始筹备自己的面试了,java技术在互联网行业的需求是很大的,所以内卷是很严重的,在面试环节一定要全力以赴才行,下面小编就教大家一些java面试技巧,希望能帮助到大家. ...

最新文章

  1. 机器学习PAL数据预处理
  2. CentOS搭建msmtp+mutt实现邮件发送
  3. 添加MySql用户并授权
  4. php 置信区间 计算,科学网—置信区间和标准误差 - 邸月宝的博文
  5. 珠宝条码打印扫描解决方案
  6. Docker: Jenkins里的pipeline编写基本技巧
  7. Java图形开发--GUI
  8. 浪潮服务器 NF 8460M4 的PM8060 RAID卡设置添加热备方法
  9. 支撑EB级规模的大数据平台深度揭秘
  10. C++ ------------------- string类介绍
  11. 精选| 2019年6月R新包推荐(第31期)
  12. System.Web.Mvc.UrlHelper的学习与使用
  13. PC版Android系统声卡驱动,android下调试声卡驱动之概述
  14. unity中世界坐标与局部坐标
  15. 爬虫字体替换(一)天眼查
  16. “第二课堂”开课啦~
  17. MIT CMS.300 Session 5 – UNWRITTEN RULES 游戏的潜在规则
  18. 快速排序讲解+示意图
  19. Vue + Spring Boot 项目实战(十五):动态加载后台菜单
  20. 信息系统分析与设计 第九章 系统设计概述

热门文章

  1. 可编程图形硬件发展历史,以及CPU VS CPU
  2. 【百度AI_人脸识别】图片对比相似度、人脸对比登录(调摄像头)
  3. python psutil 简介
  4. 工作中对InheritableThreadLocal使用的思考
  5. html2canvas 生成图片 以及出现白边问题解决办法 生成海报
  6. 微博如何推广有好的百度排名技巧
  7. win 10 home 升级到 pro
  8. 使用 typedef 定义函数指针,更优雅的使用函数指针
  9. 4070: [Apio2015]雅加达的摩天楼
  10. 上网行为监控,可以监控到浏览的网页内容吗?