【C++】数字&cmath库常用函数

菜鸟传送门: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;

运行结果
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值