Go语言的big包实现大数运算,但是有关大整数运算,似乎没有相应的开方程序。

这里给出的程序,实现了大整数的开方运算函数。该程序是基于大整数开方运算的算法实现的。

Go语言程序:

// bigintsqrt project main.go
package mainimport ("fmt""math""math/big"
)func main() {v := uint64(123456789012345678)sqrtv := uint64(math.Sqrt(float64(v)))fmt.Printf("%d : %d\n", v, sqrtv)s := "123456789012345678"v1 := sqrt(s)fmt.Printf("%s : %v\n", s, v1)s = "100000000000000000000"v1 = sqrt(s)fmt.Printf("%s : %v\n", s, v1)
}// 计算大整数开方函数
func sqrt(s string) *big.Int {var n, a, b, m, m2 big.Intn.SetString(s, 10)a.SetInt64(int64(1))b.Set(&n)for {m.Add(&a, &b).Div(&m, big.NewInt(2))if m.Cmp(&a) == 0 || m.Cmp(&b) == 0 {break}m2.Mul(&m, &m)if m2.Cmp(&n) > 0 {b.Set(&m)} else {a.Set(&m)}}return &m
}

运算结果:

123456789012345678 : 351364182
123456789012345678 : 351364182
100000000000000000000 : 10000000000

程序说明:程序中给出了不同计算方法的结果,目的是便于比较计算结果的正确性。

Go语言实现大数开方程序相关推荐

  1. c语言算开方程序,详细解析C语言中的开方实现

    关于C语言中的开方计算,首先想到的当然是sqrt()函数,让我们先来回顾一下它的基本用法: 头文件:#include sqrt() 用来求给定值的平方根,其原型为: double sqrt(doubl ...

  2. c语言大学程序设计题库,黑龙江大学C语言程序设计试题库程序单选

    <黑龙江大学C语言程序设计试题库程序单选>由会员分享,可在线阅读,更多相关<黑龙江大学C语言程序设计试题库程序单选(5页珍藏版)>请在人人文库网上搜索. 1.黑龙江大学C语言程 ...

  3. mapreduce编程实例python-使用Python语言写Hadoop MapReduce程序

    原标题:使用Python语言写Hadoop MapReduce程序 Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. 在本教程中,我将描述如何使用Pytho ...

  4. Apache Spark学习:利用Scala语言开发Spark应用程序

    Spark内核是由Scala语言开发的,因此使用Scala语言开发Spark应用程序是自然而然的事情.如果你对Scala语言还不太熟悉,可以阅读网络教程 A Scala Tutorial for Ja ...

  5. 大数开方(Java版)

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

  6. 大数开方(C++版)

    大数开方模版: 题目:大数开方 #include <stdio.h> #include <string.h> #include <stdlib.h> #define ...

  7. 用C语言用指针怎么算通用定积分,C语言:利用指针编写程序,用梯形法计算给定的定积分实例...

    题目要求 利用指针编写程序,用梯形法计算下列公式中的定积分: 参考代码 首先说明一下指针的用处:因为所传递的参数均为数字,并不需要使用指针提高效率,故这里使用指针指向函数. 请注意calc()函数中的 ...

  8. c程序语言设计练习题,C语言程序设计练习题(含程序及参考答案)

    <C语言程序设计练习题(含程序及参考答案)>由会员分享,可在线阅读,更多相关<C语言程序设计练习题(含程序及参考答案)(47页珍藏版)>请在人人文库网上搜索. 1.1.定义一个 ...

  9. c语言修仙受控可看吗,强推三本神奇到爆的小说,c语言修仙,程序员与修真会擦出什么火花...

    大家好,我是小龙.今天我给大家推荐三本神奇到爆的小说,c语言修仙,程序员与修真会擦出什么火花! 一<c语言修仙>[一十四洲] [简介]: 林浔是一个程序员,通宵编代码后发现自己身体内多了一 ...

最新文章

  1. Redis 限流的 3 种方式,还有谁不会!
  2. JSP自定义标签开发与打包
  3. 学习大玩家的ROS笔记
  4. jQuery调用WCF服务传递JSON对象
  5. java io流printstream_java IO流:打印流 PrintStream
  6. django登录连接html,Django——登录功能(连接mysql)
  7. 吴恩达机器学习13.推荐系统
  8. 【吐血经验】在 windows 上安装 spark 遇到的一些坑 | 避坑指南
  9. MarkDown说明
  10. EditPlus中文绿色破解版安装
  11. python提升算法3_XGBOOST_docs_Scikit-LearnAPI_XGBClassifier_train参数01
  12. 浅谈Activity启动流程
  13. 在Win10 WSL中安装百度Apollo
  14. mysql 优化思路_Mysql优化思路
  15. JDK JRE JVM ===》JavaSE 标准版
  16. linux :Java SE Development Kit 7u5
  17. 苹果5壁纸_冷高轮时间wallpaper Engine动态时钟壁纸 小人人体形状造型数字 手势数字 麻将数字 扑克数字 时钟壁纸...
  18. 三分钟简单了解SaaS、PaaS、IaaS,别再企业上云时犯糊涂!
  19. 网管系统 php,智和网管平台-真正开放源码的网元管理系统(EMS)
  20. 厄米共轭matlab,JuliaStatComputing

热门文章

  1. Cocos Creator 使用 Android Studio 打包 APK 遇到的坑
  2. Spring Boot自定义Banner
  3. Snmp网络协议及Java开发相关
  4. 浏览器 html 看层级,浏览器视图层级中的“根”:html和body的属性研究
  5. Vue+ElementUI搭建一个后台管理框架
  6. distcp用于集群中数据传输解读
  7. Scala实现WordCount
  8. protostuff java_protostuff 及其注意事项
  9. mac下nvm_2021 搞个 Mac 玩玩吧!
  10. java 加载spring_spring的加载机制?