菜鳥傳送門:https://www.runoob.com/cplusplus/cpp-numbers.html
作者廢話:作為一個從業3年的JS人,現在重拾C++,雖然眾多語言都有很多相似之處(至少算法,數學運算,數據結構等等那些都是相同的),但我仍然認為數字這塊是值得仔細去看的。畢竟JS作為一個無類型的語言,在內存管理極為嚴格的C++面前,二者的差距是比較大的。
在這里,順便推薦一個安卓軟件:C4droid。是本人目前用過的最好用的適合初學者/刷題使用的移動端編程軟件。這樣就可以隨時隨地刷題了(bushi
C++ 定義數字
#include <iostream>
using namespace std;int main()
{// 數字定義short s;int i;long l;float f;double d;// 數字賦值s = 10;i = 1000;l = 1000000;f = 230.47;d = 30949.374;// 數字輸出cout << "short s :" << s << endl;cout << "int i :" << i << endl;cout << "long l :" << l << endl;cout << "float f :" << f << endl;cout << "double d :" << d << endl;return 0;
}
運行結果:
C++ 數學運算
C++的標準庫中也提供了很多豐富的數學運算函數,注意我們在定義變量的時候不能和這些函數重名(有些時候不是很方便,不是么,但這就是C++)。
要使用這些函數,您需要引用數學頭文件 <cmath>
。
#include <cmath>
函數 | 描述 |
---|---|
double cos(double); | 該函數返回弧度角(double 型)的余弦。 |
double sin(double); | 該函數返回弧度角(double 型)的正弦。 |
double tan(double); | 該函數返回弧度角(double 型)的正切。 |
double log(double); | 該函數返回參數的自然對數。 |
double pow(double, double); | 假設第一個參數為 x,第二個參數為 y,則該函數返回 x 的 y 次方。 |
double hypot(double, double); | 該函數返回兩個參數的平方總和的平方根,也就是說,參數為一個直角三角形的兩個直角邊,函數會返回斜邊的長度。 |
double sqrt(double); | 該函數返回參數的平方根。 |
int abs(int); | 該函數返回整數的絕對值。 |
double fabs(double); | 該函數返回任意一個浮點數的絕對值。 |
double floor(double); | 該函數返回一個小于或等于傳入參數的最大整數。 |
在我們上面的代碼里添加數學運算的部分
#include <iostream>
#include <cmath>
using namespace std;int main()
{// 數字定義short s;int i;long l;float f;double d;// 數字賦值s = 10;i = 1000;l = 1000000;f = 230.47;d = 30949.374;// 數字輸出cout << "數字輸出" << endl;cout << "short s :" << s << endl;cout << "int i :" << i << endl;cout << "long l :" << l << endl;cout << "float f :" << f << endl;cout << "double d :" << d << endl;// 數學運算cout << "數學運算" << endl;cout << "sin(d) :" << sin(d) << endl;cout << "abs(i) :" << abs(i) << endl;cout << "floor(d) :" << floor(d) << endl;cout << "sqrt(f) :" << sqrt(f) << endl;cout << "pow( d, 2) :" << pow(d, 2) << endl;return 0;
}
運行結果
C++ 隨機數
#include <iostream>
#include <ctime>
#include <cstdlib>using namespace std;int main ()
{int i,j;// 設置種子srand( (unsigned)time( NULL ) );/* 生成 10 個隨機數 */for( i = 0; i < 10; i++ ){// 生成實際的隨機數j= rand();cout <<"隨機數: " << j << endl;}return 0;
}
運行結果
隨機數: 1748144778
隨機數: 630873888
隨機數: 2134540646
隨機數: 219404170
隨機數: 902129458
隨機數: 920445370
隨機數: 1319072661
隨機數: 257938873
隨機數: 1256201101
隨機數: 580322989
C++ 數學常數
#include <iostream>
#include <cmath>
#include <numbers>int main() {// πstd::cout << "pi: " << std::numbers::pi << std::endl;// 自然對數的底數 e (Euler's Number)std::cout << "e: " << std::numbers::e << std::endl;// 黃金比例 φ (Golden Ratio)std::cout << "phi: " << std::numbers::phi << std::endl;return 0;
}
運行結果
pi: 3.14159
e: 2.71828
phi: 1.61803
C++ 標準庫
完整版菜鳥傳送門:https://www.runoob.com/cplusplus/cpp-libs-cmath.html
這里我只列出幾個常用的
函數 | 功能 | 示例 |
---|---|---|
abs(x) | 計算整數 x 的絕對值 | abs(-5) // 5 |
exp(x) | 計算 e^x,e 為自然對數的底數 | exp(1) // 2.71828… |
log(x) | 計算 x 的自然對數 | log(2.71828) // 1 |
log10(x) | 計算 x 的以 10 為底的對數 | log10(100) // 2 |
pow(x, y) | 計算 x 的 y 次方 | pow(2, 3) // 8 |
sqrt(x) | 計算 x 的平方根 | sqrt(16) // 4 |
sin(x) | 計算 x 的正弦值,x 以弧度為單位 | sin(3.14159 / 2) // 1 |
cos(x) | 計算 x 的余弦值,x 以弧度為單位 | cos(3.14159) // -1 |
tan(x) | 計算 x 的正切值,x 以弧度為單位 | tan(0) // 0 |
ceil(x) | 返回不小于 x 的最小整數 | ceil(2.3) // 3 |
floor(x) | 返回不大于 x 的最大整數 | floor(2.3) // 2 |
運行一下,注意這里需要引入cmath
庫
// cmath庫常用函數cout << "cmath庫常用函數" << endl;cout << "abs(-10)=" << abs(-10) << endl;cout << "exp(1)=" << exp(1) << endl;cout << "log(10)=" << log(10) << endl;cout << "log10(1000)=" << log10(1000) << endl;cout << "pow(10,2)=" << pow(10,2) << endl;cout << "floor(10.23)=" << floor(10.23) << endl;cout << "ceil(-10.23)=" << ceil(-10.23) << endl;
運行結果