运算符运用 B2010 带余除法
刚刚开始学习 C/C++ 的同学们看到这道题是否有一点慌呢?
例如,正常情况下,我们有
事实上,C/C++ 提供了取模运算符 %,功能就是计算余数。
可是,怎样才能获得商数部分呢?
C/C++ 提供了一种功能,叫做整型截断,意思是如果你进行 int/int 或其他整型除法时,答案会自动保留整数部分,即向下取整。换言之,以下代码结果如注释:
int a=5/3; //5/3=1.666.... 截断为 1
这样我们就可以 AC 这道题目了!
#include <bits/stdc++.h>
using namespace std;
int main(void) {
int a,b;
scanf("%d%d",&a,&b);
printf("%d %d",a/b,a%b);
return 0;
}
extend
一些扩展。
- 实际使用要判断除数是否为
0 ; - 浮点数除法可以使用强制类型转换来取整,如:
int a=(int)(5.0/3.0); //两组括号可以省略其中任意一组也可以使用库函数
floor():int a=floor(5.0/3.0); %运算符是\texttt{Binary Operator} ,意味着它只能用于整型 。浮点数的取模要用库函数fmod():double a=fmod(5.0,3.0); //a=2.0