| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 605 人关注过本帖
标题:[求助]关于一个很基本的程序的运行资源占用问题
只看楼主 加入收藏
Tassadar21
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-2-3
收藏
 问题点数:0 回复次数:4 
[求助]关于一个很基本的程序的运行资源占用问题

大家好
我是一个初学c++的菜鸟
今天练习写了一段代码发现一个问题
是一个求平方根的代码
如下


#include <iostream.h>

int main()
{
long double s,i,j,root;

cout<<"\nPlease input the number \n";

cin>>s;

if (s>=0)
{
for (i=0;i<=s;i++)
{
if (i*i>=s)

break;
}

for (j=i-1;j<=s;j=j+0.00001)

{
if (j*j>=s) (fabs(j*j-s)<=1e-6)

break;
}

root=j;

cout<<"\nThe square root is "<<root<<".\n";
}

else

cout<<"\nthe square root is a complex number .\n";

return 0;

}

当加粗的下划线那一段的if条件使用红色的代码代替之后

整个代码运行起来就变得非常之缓慢

请问这里是出了什么问题??

求平方根还有其他更简洁的实现方法吗?

搜索更多相关主题的帖子: 资源 运行 平方根 
2006-10-20 00:08
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 
有,

double pingfanggen(double x)
{
return pow(x,0.5);
}

[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-10-20 08:03
Tassadar21
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-2-3
收藏
得分:0 
谢谢楼上的兄弟

我的意思是不用内置的math.h的函数来实现

应该如何写一个效率比较高的求平方根的算法
2006-10-20 13:01
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
收藏
得分:0 
我有个算法, 用则中逼近的方法。

比如求5 的平方根, 用 1 作为起始测试值, 1*1 = 1 显然不符合条件, 然后加1, 2*2= 4 还是不符合, 再加1 3*3=9, 9>5, 那么索求的值在2, 3 之间, 取他们的中间值, 那就是2.5, 2.5*2.5= 6,25>5, 再取中间值, (2+2.5)/2=2,25 这样一直做下去, 直到某个数的平方数趋近于5, 那么我们就得到解了。

自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2006-10-20 14:47
Tassadar21
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-2-3
收藏
得分:0 
楼上的算法倒是可以一试
资源占用应该比我写的要小点
试试
2006-10-20 17:50
快速回复:[求助]关于一个很基本的程序的运行资源占用问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018775 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved