博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
平方开根 - 牛顿迭代(板子整理)
阅读量:7078 次
发布时间:2019-06-28

本文共 2162 字,大约阅读时间需要 7 分钟。

long long 范围内的开根

int Sqrt(int x) {    if (x == 0) return 0;    double last = 0;    double res = 1;    while (res != last)    {        last = res;        res = (res + x / res) / 2;    }    return int(res);}

 浮点数的开根

double fun(double x) {    if (x == 0) return 0;    double last = 0.0;    double res = 1.0;    while (res != last)    {        last = res;        res = (res + x / res) / 2;    }    return res;}

 

java 大数套牛顿迭代

import java.math.BigInteger;import java.math.*;import java.math.BigInteger;import java.util.Scanner;import java.util.*; public class Main{    public static void bigSqrt(){         Scanner cin=new Scanner(System.in);          String s=cin.next();          BigInteger remain=BigInteger.ZERO;          BigInteger odd=BigInteger.ZERO;          BigInteger ans=BigInteger.ZERO;//          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);        cin.close();        return;    }       public static void main(String[] args)        {               Scanner cin=new Scanner(System.in);               //int t=cin.nextInt();                   bigSqrt();              cin.close();      }}

 

转载于:https://www.cnblogs.com/ccut-ry/p/9651982.html

你可能感兴趣的文章
【设计模式】抽象工厂模式
查看>>
OO第四次博客
查看>>
面试STAR法则
查看>>
Linux命令-自动挂载文件/etc/fstab功能详解[转]
查看>>
对地理信息标准化的思考
查看>>
proguard混淆jar文件
查看>>
cocos2d Labels and Fonts 标签和字体(附:关于Hiero的二三事)
查看>>
生成UUID
查看>>
20个数据库设计最佳实践
查看>>
查看控件id的工具
查看>>
Win7下Eclipse中文字体太小
查看>>
git
查看>>
黄聪:自定义插件的时候,如何调用WordPress编辑器(wp_editor)转
查看>>
黄聪:PHP 防护XSS,SQL,代码执行,文件包含等多种高危漏洞
查看>>
利用angular结合translate为项目实现国际化
查看>>
Hadoop:Task process exit with nonzero status of 1 异常
查看>>
jQuery手机发送验证码倒计时代码
查看>>
切图常用的布局和效果
查看>>
LINUX让环境变量立即生效的方法
查看>>
【Win7网络延迟问题多种解决方法】
查看>>