重新认识——C++简单数学运算与数学函数
1.简单数学运算和例题
1.1.数学运算符介绍
计算机,顾名思义,就是计算用的机器。
接下来我们将会学习计算机中的四则运算符。
符号 | 名字 | 作用 |
---|---|---|
+ | 加号 | 计算两数之和 |
- | 减号 | 计算两数之差 |
* | 乘号 | 计算两数之积 |
/ | 整除符号 | 计算两数之商的整数部分,如10/3输出3 |
% | 取余数/求模 | 计算两数相除的余数,如20%6输出2 |
优先级:
先乘除取模,后加减。有括号先算括号内的。
注意
C++中的运算只有小括号,没有大中小括号之分。例如2*[5-(1+2)/4]在C++中写作2*(5-(1+2)/4)
表达式中数据与括号之间的乘号不可以省略。例如2(5-1)是不合法的。应写成2*(5-1)。
1.2.例题——分苹果
题目描述
唐老师买了n个苹果,将其分给m个人,求:
1)每个人能分得几个苹果?
2)一共分出去几个苹果?
3)还剩下几个苹果?
输入格式
两个整数,表示n和m。
输出格式
三行,如题目描述所示。
输入样例
14 4
输出样例
3
12
2
程序示例如下:
#include<iostream>
using namespace std;
int main(){
int n,m;
cin>>n>>m;//记得输入
cout<<n/m<<endl;//求每个人能分得几个苹果
cout<<n/m*m<<endl;//求一共分出去几个苹果
cout<<n-n/m*m<<endl;//求还剩下几个苹果,可以用n%m代替
return 0;
}
比如我现在有14个苹果,4个人。我们可以将它们相除,得到:
14 / 4 = 3 …… 2
那么每人就可以分到3个苹果,一共分出去3* 4=12个苹果,还剩下14-3* 4=2个苹果。
得到公式:
苹果总数 / 人数 = 每人能分到的苹果数…剩下的苹果数
1.3.浮点数精度与科学计数法
1.3.1.例题——均分肥宅水
题目描述
现有500毫升肥宅水,将它平均分给三个人,求每个同学分到多少毫升。输出保留三位小数。
代码示例:
#include<iostream>
using namespace std;
int main(){
cout<<500.0/3<<endl;
return 0;
}
可以看到,这里还是使用/ 作为除号。不同的是,左边的500变成了500.0。这样500就从整数变成了浮点数。得到的结果也就是浮点数。
由此我们可以得知:当除号两边至少有一个浮点数时,除法的结果也是浮点数。
1.3.2.科学计数法
运行程序,观察输出
#include<iostream>
using namespace std;
int main(){
cout<<500.0/3<<endl;
cout<<5000000.0/3<<endl;
cout<<0.000005/3<<endl;
cout<<5e6/3+5e-6/3-5e6/3<<endl;
return 0;
}
输出:
166.667
1.66667e+006
1.66667e-006
1.6666e-006
本例中,C++输出浮点数的精度默认不超过六位。过大或者过小都会用科学计数法来表示。比如1e+6就表示1*106。程序中也可以这样写,但是要注意其内部不可以有空格(如 1 e - 7是不合法的)。
第四行输出的结果是不符合我们预期的。这是因为浮点数在计算机中无法用二进制精准的表示。一点小小的误差是可以被允许的。
2. 数学函数整理
2.1.函数表格和注意事项
函数 | 作用 | 举例 |
---|---|---|
double sqrt(double a) | 计算a的算术平方根 | sqrt(9) |
double pow(doouble x,double y) | 计算ab | pow(5,2) |
int abs(int a) | 计算a的绝对值 | abs(-3) |
double fabs(double a) | 计算浮点数a的绝对值 | abs(-2.5) |
double fmod(double a,double b) | 计算浮点数a模浮点数b的结果 | fmod(2.5,2) |
double log(double a) | 计算a的自然对数 | log(10) |
double log2(double a) | 计算以2为底时a的对数 | log2(32) |
double log10(double a) | 计算以10为底时a的对数 | log10(1000) |
int ceil(double a) | 将a向上取整 | ceil(2.1) |
int floor(double a) | 将a向下取整 | floor(3.9) |
int round(double a) | 将a四舍五入 | round(8.5) |
注意:使用以上函数要包含cmath头文件
2.2.例题——圆球的体积
题目描述
对于半径为r的球,其体积的计算公 式为V=4/3*πr3,这里取π=3.14。现在要求输入球的半径r, 求球的体积V,保留小数点后2位。
输入格式
输入包含一个实数r(0<r≤10,000),表示圆的半径。
输出格式
输出一行,表示球的体积,保留小数点后2位。
输入输出样例
输入 #1
3.0
输出 #1
113.04
题目分析:直接按题意模拟就行。
代码示例:
#include<iostream>
#include<iomanip>//保留两位小数需要使用
#include<cmath>//需要使用pow函数
using namespace std;
int main(){
double r,v;
const double PI=3.14;//π=3.14
cin>>r;
v=4.0/3*PI*pow(r,3);//计算体积
cout<<fixed<<setprecision(2)<<v<<endl;//保留两位小数,这里还是太过麻烦,之后会介绍更简单的方法
return 0;
}
3.课后作业
三角形面积 - 洛谷
上学迟到 - 洛谷
强烈推荐- 洛谷深入浅出配套题单,本博客也稍有参考洛谷系列书籍——深入浅出。真心觉得好用
下期预告:printf ,scanf和转义字符
喜欢就订阅专辑吧!
【蓝胖子编程教育简介】
蓝胖子编程教育,是一家面向青少年的编程教育平台。平台为全国青少年提供最专业的编程教育服务,包括提供最新最详细的编程相关资讯、最专业的竞赛指导、最合理的课程规划等。本平台利用趣味性和互动性强的教学方式,旨在激发孩子们对编程的兴趣,培养他们的逻辑思维能力和创造力,让孩子们在轻松愉快的氛围中掌握编程知识,为未来科技人才的培养奠定坚实基础。
欢迎扫码关注蓝胖子编程教育