1.2 简单的数学运算

数学运算,包括加减乘除四则运算和cmath库的特殊数学运算函数,例如平方,开方的。

例 1-3

分苹果。现在有14个苹果,要均分给4名同学,分不掉的苹果放回冰箱。请问:

  1. 每位同学能分得几个苹果?
  2. 一共分出去多少个苹果?
  3. 把几个苹果放回冰箱?

解答

#include<iostream>
using namespace std;

int main()
{
    cout<<14/4<<endl;
    cout<<14/4*4<<endl;
    cout<<14-14/4*4<<endl;
    //cout<<14%4<<endl;
    return 0;
}

程序运算遵循:

  • 括号优先级别最高
  • 先乘除,后加减
  • 从左到右

的规则。

* 有时候为了逻辑清晰,可加括号区分

例 1-4

均分肥宅水。 现有500毫升的肥宅快乐水,要均分给3位同学,每位同学可以分到多少毫升?请输出一个数字作为答案。

解答

#include<iostream>
using namespace std;

int main()
{
    cout<<500.0/3<<endl;
    return 0;
}

输出:

166.667

500.0加上.0后,计算机会认为它是浮点数。否则计算机会认为数字是整数。

例 1-5

输入以下程序,观察输出:

#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

1.66667e+006就是 1.66667 X 106 的意思。

  • cout输出浮点数,默认保留不超过6位有效数字。
  • 如果数字过大或者过小,就会使用科学记数法输出(同样保留不超过6位有效数字)。
  • 计算机浮点数存储机制决定了浮点数的精度是有限的,所以会导致误差。

例 1-6

火车问题。 甲列火车车长260m,每秒前进12m;乙列火车长220m,每秒前进20m,两车相向而行,从两车的火车头相遇开始计时,多长时间后两车车尾相离?

已知答案是整数。

分析:

以甲火车为参照物,从甲火车上看,甲自己不动,乙向甲移动。乙的速度是 12m/s + 20m/s = 32m/s,乙从和甲车头相遇到离开车尾,经过的距离是 260m + 220m = 480m。

所以,题目所求可以转化成求 480÷32 的结果。

解答

#include<iostream>
using namespace std;

int main()
{
    cout<<480/32<<endl;
    return 0;
}

题目已经保证答案是整数,所以直接用整数计算即可。

例 1-7

对角线问题。一个长方形的长和宽分别是9cm,6cm,求它的对角线长度。

分析:

根据勾股定理,答案就是:$\sqrt{6^2+9^2}$

解答

#include<iostream>
#include<cmath>
using namespace std;

int main()
{
    cout<<sqrt(pow(6,2)+pow(9,2))<<endl;
    return 0;
}

新头文件#include<cmath>,该头文件和数学有关。
cmath常见数学函数:

表 1-1 数学函数

函数原型 样例 说明
double sin(double x)
double cos(double x)
sin(3.14159/2 三角函数正弦和余弦,x是弧度
double exp(double x) exp(1) 返回ex,其中e是自然常数
double log(double x) log(10) 返回x的自然对数
double pow(double x,double y) pow(3,2) 返回xy,也可以用来运算多次根式
double sqrt(double x) sqrt(9) 返回$\sqrt{x}$
double fabs(double x) fabs(-10) 返回x的绝对值
double ceil(x) ceil(2.1) 对x进行向上取整
double floor(double x) floor(2.9) 对x进行向下取整

第一节结束,祝学习愉快!

posted @ 2021-04-09 15:47  CodeSpark  阅读(518)  评论(0)    收藏  举报