重新认识——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)计算abpow(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和转义字符

喜欢就订阅专辑吧!

【蓝胖子编程教育简介】
蓝胖子编程教育,是一家面向青少年的编程教育平台。平台为全国青少年提供最专业的编程教育服务,包括提供最新最详细的编程相关资讯、最专业的竞赛指导、最合理的课程规划等。本平台利用趣味性和互动性强的教学方式,旨在激发孩子们对编程的兴趣,培养他们的逻辑思维能力和创造力,让孩子们在轻松愉快的氛围中掌握编程知识,为未来科技人才的培养奠定坚实基础。

欢迎扫码关注蓝胖子编程教育
在这里插入图片描述

  • 13
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值