求大数平方根

fire314159 2007-01-25 09:23:46
给定一个数x(0≤x≤10^50),且x的平方根必有整数解,要求输出x的平方根a
...全文
734 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
干饭人之路 2007-02-01
  • 打赏
  • 举报
回复
楼主,我曾经见过一个师兄用一个结构体来做,就是把0-9这10个数字放到一个结构体里面,每一个数字由一个数字型的数字和一个字符型的数字构成,然后把乘法一位一位做,结果存在一个字符串中,原理就是这样的,具体程序我这里没有,实在抱歉,不过你可以试一下.
pekingss 2007-01-31
  • 打赏
  • 举报
回复
呵呵^_^
du51 2007-01-31
  • 打赏
  • 举报
回复
两位两位.那个算法.还是要大数乘法.
到后面可能会很长...
ayw215 2007-01-31
  • 打赏
  • 举报
回复
^_^
fire314159 2007-01-31
  • 打赏
  • 举报
回复
一帮人就知道笑,不许笑,口水都流出来了。
yingge 2007-01-31
  • 打赏
  • 举报
回复
大数算发啊~~

顺便一提fire314159 (我的网站地址是http://127.0.0.1,欢迎大家访问)
楼主的网址是本机ip,只有自己能访问
-------------------------
楼上还真没有sense of humor

-------------------------
这个简直是今天CSDN上最好笑的笑话了

-------------------------
比我上天涯看到的还要幽默哦
gamedragon 2007-01-30
  • 打赏
  • 举报
回复
初中时候笔算平方根,复习一下就行了。
heliboy110 2007-01-30
  • 打赏
  • 举报
回复
先去把数学学好了在来讨论次问题
realrukawa 2007-01-30
  • 打赏
  • 举报
回复
大数算发啊~~

顺便一提fire314159 (我的网站地址是http://127.0.0.1,欢迎大家访问)
楼主的网址是本机ip,只有自己能访问
-------------------------
楼上还真没有sense of humor

-------------------------
这个简直是今天CSDN上最好笑的笑话了
Great6661 2007-01-30
  • 打赏
  • 举报
回复
为什么 x 的大小是 20?

double x[20];
fire314159 2007-01-25
  • 打赏
  • 举报
回复
大数算发啊~~

顺便一提fire314159 (我的网站地址是http://127.0.0.1,欢迎大家访问)
楼主的网址是本机ip,只有自己能访问
-------------------------
楼上还真没有sense of humor
pluton 2007-01-25
  • 打赏
  • 举报
回复
大数算发啊~~

顺便一提fire314159 (我的网站地址是http://127.0.0.1,欢迎大家访问)
楼主的网址是本机ip,只有自己能访问
jixingzhong 2007-01-25
  • 打赏
  • 举报
回复
#include <iostream.h>
void main()
{
const double a=10000000000;
double x[20];
x[0]=1;
for (int i=0;i<20;i++)
{
x[i+1]=(x[i]+(a/x[i]))/2;
}
cout << x[20] <<endl;
}
jixingzhong 2007-01-25
  • 打赏
  • 举报
回复
zzwu(未名)回复于 2002-06-06 14:54:27 得分 0


求 n=2787382978484930394875950483728944950409503 的平方根:

1.将 n=2787382978484930394875950483728944950409503 从右到左、2位2位地进行分段:
2,78,73,82,97,84,84,93,03,94,87,59,50,48,37,28,94,49,50,40,95,03

2.求出最高一段(即2)所含的整数方根,得q1=1;所以n的平方根的最高位是1

3.把n减去q1的平方,再把剩下的最高位移到下一段(第二段),这样,第二段成了178。

4.设q2为n的第2位方根,则q2必须同时满足:
(20*q1+q2)*q2 <= 178
(20*q1+(q2+1))*(q2+1)> 178
2个条件。

因q1=1,若q2=6,则
(20*q1+q2)* q2 = 26*6 = 156 <= 178
(20*q1+(q2+1))*(q2+1)= 27*7 = 189 > 178
这样就可算出 q2=6

依此类推,就可算出n的方根的第3、第4、....第n位数值来。
jixingzhong 2007-01-25
  • 打赏
  • 举报
回复
http://topic.csdn.net/t/20020604/01/776523.html

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧