a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > C > 正文

詳細解析C語言中的開方實現

2020-01-26 14:59:37
字體:
來源:轉載
供稿:網友

關于C語言中的開方計算,首先想到的當然是sqrt()函數,讓我們先來回顧一下它的基本用法:
頭文件:#include <math.h>

sqrt() 用來求給定值的平方根,其原型為:

  double sqrt(double x);

參數

x 為要計算平方根的值。

如果 x < 0,將會導致 domain error 錯誤,并把全局變量 errno 的值為設置為 EDOM。

返回值

返回 x 平方根。

注意,使用 GCC 編譯時請加入-lm。

實例計算200 的平方根值。

#include <math.h>main(){  double root;  root = sqrt(200);  printf("answer is %f/n", root);}

輸出結果:
answer is 14.142136

題目
求整數N的開方,精度在0.001

二分法
若N大于1,則從[1, N]開始,low = 1, high = N, mid = low + (high - low) >> 1開始進行數值逼近

若N小于1,則從[N, 1]開始,low = 0, high = N, mid = low + (high - low) >> 1開始進行數值逼近

ac代碼


 /**    * 創新工廠2014年校招算法題目,求整數N的開方,精度為0.001    */      #include <stdio.h>   #include <stdlib.h>   #include <math.h>      #define ACCURACY 0.001      double newSqrt(double n)   {     double low, high, mid, tmp;        // 獲取上下界     if (n > 1)  {       low = 1;       high = n;     } else {       low = n;       high = 1;     }        // 二分法求開方     while (low <= high) {       mid = (low + high) / 2.000;          tmp = mid * mid;          if (tmp - n <= ACCURACY && tmp -n >= ACCURACY * -1) {         return mid;       } else if (tmp > n) {         high = mid;       } else {         low = mid;       }     }        return -1.000;   }      int main(void)   {     double n, res;        while (scanf("%lf", &n) != EOF) {       res = newSqrt(n);       printf("%lf/n", res);     }        return 0;   } 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 欧美日韩亚洲另类 | 亚洲一区 | 亚洲黄色一区二区 | 综合中文字幕 | 四虎动漫 | 一级毛片视频 | 国产精品一区二区三区99 | 中文字幕视频在线免费 | 久久久久久九九九 | www.成人 | 成人欧美一区二区 | 久久久久久亚洲av毛片大全 | 精品一区二区视频 | 精品国产精品三级精品av网址 | 欧洲视频一区二区三区 | www.欧美 | 91精彩刺激对白露脸偷拍 | 97超碰人人| 亚洲欧洲一区二区三区 | 色噜噜在线观看 | www.久久.com| 一级爱爱片 | 成年人免费看片 | 国产黄色免费视频 | 欧美成人第一页 | 国产精品久久久久国产a级 色999国产 | 秋霞久久 | 日本三级做a全过程在线观看 | 日日日操 | 欧美一区二区三区免费观看 | 国产不卡在线视频 | 日韩成人精品在线观看 | 精品国自产在线观看 | 91久久精品一区二区别 | 蜜桃精品久久久久久久免费影院 | 中文字幕在线观看av | 成人在线小视频 | 久久久久网站 | 日韩专区一区二区 | 韩国精品一区二区 | 国产18av|