传世燃灯忽视混多少:求“取n的平方根的整数部分”的精简算法。

来源:百度文库 编辑:高校问答 时间:2024/05/09 01:37:07
其中,n是一个整数,m是一整型变量。
可否找到一个算法,能从时间复杂度上简化下面的过程?

m=(int)sqrt(n);

在这里先谢谢各位了。
smiller:
你的没有达到要求。
从1到100000逐个开方并输出,你的用了41秒,系统的方法用了35秒。

int my_sqrt(int n)
{
int i=1;
if (n<0)
{
printf("input error\n");
exit(0);
}
if (n==0) return 0;
while(i<=n/i)
i++;
return (i-1);
}
这样只是简单循环,不用什么牛顿迭代那些精确算法。