一、数学函数
1.ceil与floor 上下取整函数
我们以3.1来举例,对3.1向上取整,就是取第一个大于等于3.1的整数,为4;
对3.1向下取整,就是取第一个小于等于3.1的整数,为3。
ceil为向上取整函数
使用格式: int t=ceil(a);//a为要向上取整的变量
举例:输入一个小数a,对a向上取整
double a;
cin >> a ;
int t=ceil(a);
cout << t;
floor为向下取整函数
使用格式: int t=floor(a);//a为要向下取整的变量
举例:输入一个小数a,对a向下取整
double a;
cin >> a ;
int t=floor(a);
cout << t;
2.max与min 最大值与最小值函数
max 和 min 是用来求两个数之间的最值问题。
max为取两个数之间的最大值
使用格式: int big = max(a,b); //求出a和b中的最大值,存进big变量里
举例:
int a,b;
cin >> a >> b ;
int big = max(a,b);
cout << big;
min为取两个数之间的最小值
使用格式: int small = max(a,b); //求出a和b中的最小值,存进small变量里
举例:
int a,b;
cin >> a >> b ;
int small = min(a,b);
cout << small;
3.abs与fabs 绝对值函数
绝对值:是点到原点的距离,正数和0的绝对值是它本身,负数的绝对值是其相反数。
abs为求整数绝对值函数
使用格式: int t = abs(a); //求出a的绝对值,存进t变量里
举例:
double a;
cin >> a ;
int t = abs(a);
cout << t;
fabs为求小数绝对值函数
使用格式: double t = fabs(a); //求出a的绝对值,存进t变量里
举例:
double a;
cin >> a ;
double t = fabs(a);
cout << t;
4.pow 求次方函数
pow为求次方函数
使用格式: double t = pow(a,b);
//求a的b次方,存进变量t中,根据题目t的类型可以更改成 long long
举例:
int a,b;
cin >> a >> b ;
double t = pow(a,b);
cout << t ;
5.sqrt 开平方函数(根号)
sqrt为开平方函数
使用格式: double t = sqrt(a);
//求a的开平方数,存进变量t中,根据题目t的类型可以更改成 int
举例:
int a;
cin >> a ;
double t = sqrt(a);
cout << t ;
6.swap 交换函数
swap为交换函数
使用格式: swap(a,b);//交换a和b的值
举例:
int a,b;
cin >> a >> b ;
swap(a,b);
cout << a << " " << b ;
7.round 四舍五入函数
round为四舍五入函数
使用格式: double t = round(a);
//对a四舍五入后的结果,存进变量t中,根据题目t的类型可以改成 int
举例:
double a;
cin >> a ;
double t = round(a);
cout << t ;
二、常见题型——数位拆分
使用符号: / %
/10: 去掉个位
%10: 取出个位
如果我们要一个四位数n反向输出,让他从1234变成4321:
1.取出个位数:int a = n %10;
2.取出十位数:int b = n / 10 %10;
3.取出百位数:int c = n / 100 % 10;
4.取出千位数:int d = n /1000 %10;
5.反向输出每位数:cout << a << b << c << d ;
【题目练习1】
[题目解析]:
因为这个题要反向输出,所以我们先把每位数拆分出来,然后从个位数开始倒着输出每一位数。这里要明白,100是作为一个变量存在的,而不是三个。
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin >> n ;
int a = n % 10;
int b = n / 10 % 10;
int c = n / 100 % 10;
cout << a << b << c ;
return 0;
}
【题目练习2】
[题目解析]:
这个题目说了要反向输出,但是反过来的数字,不能有前导0的存在,这里其实需要大家将反过来的数字组成新的整数,因为在数学中,我们的最高位是不存在0的,跟题目上的要求刚好相同。(这里不明白可以看一下代码解释)
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin >> n ; // 假设我们输入了700
int a = n % 10; // 个位数为 0
int b = n / 10 % 10; // 十位数为 0
int c = n / 100 % 10; // 百位数为 7
int d = a * 100 + b * 10 + c; // 0* 100 + 0* 10 + 7 = 7
cout << d ; //输出答案为7
return 0;
}
归纳总结:
在做数字反转的题目时,需要注意一下题目的要求,看看是否需要前导0。
如果需要前导零: 就可以直接反向输出这几位数。
如果不需要前导零: 那就组成新的数字进行输出。