Go语言实现大数开方程序
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语言实现大数开方程序相关推荐
- c语言算开方程序,详细解析C语言中的开方实现
关于C语言中的开方计算,首先想到的当然是sqrt()函数,让我们先来回顾一下它的基本用法: 头文件:#include sqrt() 用来求给定值的平方根,其原型为: double sqrt(doubl ...
- c语言大学程序设计题库,黑龙江大学C语言程序设计试题库程序单选
<黑龙江大学C语言程序设计试题库程序单选>由会员分享,可在线阅读,更多相关<黑龙江大学C语言程序设计试题库程序单选(5页珍藏版)>请在人人文库网上搜索. 1.黑龙江大学C语言程 ...
- mapreduce编程实例python-使用Python语言写Hadoop MapReduce程序
原标题:使用Python语言写Hadoop MapReduce程序 Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. 在本教程中,我将描述如何使用Pytho ...
- Apache Spark学习:利用Scala语言开发Spark应用程序
Spark内核是由Scala语言开发的,因此使用Scala语言开发Spark应用程序是自然而然的事情.如果你对Scala语言还不太熟悉,可以阅读网络教程 A Scala Tutorial for Ja ...
- 大数开方(Java版)
题目:大数开方 Java代码:适合被开方数不超过1000位的. import java.util.*; import java.math.*; public class Main { public s ...
- 大数开方(C++版)
大数开方模版: 题目:大数开方 #include <stdio.h> #include <string.h> #include <stdlib.h> #define ...
- 用C语言用指针怎么算通用定积分,C语言:利用指针编写程序,用梯形法计算给定的定积分实例...
题目要求 利用指针编写程序,用梯形法计算下列公式中的定积分: 参考代码 首先说明一下指针的用处:因为所传递的参数均为数字,并不需要使用指针提高效率,故这里使用指针指向函数. 请注意calc()函数中的 ...
- c程序语言设计练习题,C语言程序设计练习题(含程序及参考答案)
<C语言程序设计练习题(含程序及参考答案)>由会员分享,可在线阅读,更多相关<C语言程序设计练习题(含程序及参考答案)(47页珍藏版)>请在人人文库网上搜索. 1.1.定义一个 ...
- c语言修仙受控可看吗,强推三本神奇到爆的小说,c语言修仙,程序员与修真会擦出什么火花...
大家好,我是小龙.今天我给大家推荐三本神奇到爆的小说,c语言修仙,程序员与修真会擦出什么火花! 一<c语言修仙>[一十四洲] [简介]: 林浔是一个程序员,通宵编代码后发现自己身体内多了一 ...
最新文章
- Redis 限流的 3 种方式,还有谁不会!
- JSP自定义标签开发与打包
- 学习大玩家的ROS笔记
- jQuery调用WCF服务传递JSON对象
- java io流printstream_java IO流:打印流 PrintStream
- django登录连接html,Django——登录功能(连接mysql)
- 吴恩达机器学习13.推荐系统
- 【吐血经验】在 windows 上安装 spark 遇到的一些坑 | 避坑指南
- MarkDown说明
- EditPlus中文绿色破解版安装
- python提升算法3_XGBOOST_docs_Scikit-LearnAPI_XGBClassifier_train参数01
- 浅谈Activity启动流程
- 在Win10 WSL中安装百度Apollo
- mysql 优化思路_Mysql优化思路
- JDK JRE JVM ===》JavaSE 标准版
- linux :Java SE Development Kit 7u5
- 苹果5壁纸_冷高轮时间wallpaper Engine动态时钟壁纸 小人人体形状造型数字 手势数字 麻将数字 扑克数字 时钟壁纸...
- 三分钟简单了解SaaS、PaaS、IaaS,别再企业上云时犯糊涂!
- 网管系统 php,智和网管平台-真正开放源码的网元管理系统(EMS)
- 厄米共轭matlab,JuliaStatComputing
热门文章
- Cocos Creator 使用 Android Studio 打包 APK 遇到的坑
- Spring Boot自定义Banner
- Snmp网络协议及Java开发相关
- 浏览器 html 看层级,浏览器视图层级中的“根”:html和body的属性研究
- Vue+ElementUI搭建一个后台管理框架
- distcp用于集群中数据传输解读
- Scala实现WordCount
- protostuff java_protostuff 及其注意事项
- mac下nvm_2021 搞个 Mac 玩玩吧!
- java 加载spring_spring的加载机制?