菜鸟传送门: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;
运行结果