一般的来说我们在进行开方运算时, 都会使用 sqrt 函数进行开方运算. 使用 sqrt 时就需要引用头文件 math.h.(这里使用 %d 来输出整数)
- #include
- #include
- int Mysqrt(int n)
- {
- return sqrt(n*1.0);
- }
- int main()
- {
- printf("%d\n",Mysqrt(10));
- printf("%d\n",Mysqrt(9));
- return 0;
- }
运算结果如图 1-1
1-1
还有一种方法可以不使用 math.h. 我们利用循环来找出 n 使得 n*n 小于所求根的数, 且 (n+1)*(n+1) 大于所求根的数.
- #include
- int Mysqrt(int n)
- {
- int i;
- for(i=0;i*i<=n;i++)
- ;
- return i-1;
- }
- int main()
- {
- printf("%d\n",Mysqrt(10));
- printf("%d\n",Mysqrt(9));
- return 0;
- }
如图 1-2 所示
1-2
可以看出方法二用时要短一些.
来源: https://www.2cto.com/kf/201810/782918.html