本讲定位:一级编程题的发动机。加减乘除人人会,但
/(整除)和%(求余)这两个运算,几乎每一道一级编程题都会用到——判断奇偶、取出数字的某一位、判断能否整除、时间与单位换算,全靠它们。同时,运算优先级和++/--是客观题的固定考点。这一讲是一级第 01–04 讲的第一次收割,也是第 07、08 讲的必备前提。对应官方大纲:一级知识块 6「基本运算」中的算术运算与变量自增自减运算。(逻辑运算、关系运算、三目运算见一级第 06 讲。)
前置知识:一级第 02 讲(输入输出、赋值)、第 04 讲(整数与浮点的区别)。
代码说明:本讲所有代码均已用 g++ 11.5(
-std=c++11)编译运行验证,输出结果即为文中标注结果。
输入一个三位数,分别输出它的百位、十位、个位数字,用空格分隔。
样例输入:
375样例输出:3 7 5
这道题不需要任何算法,但没学过 / 和 % 的学生会彻底卡住——他们想不出怎么”把数字拆开”。
学完本讲,答案只有三行:
int n;
cin >> n;
cout << n / 100 << " " << n / 10 % 10 << " " << n % 10 << endl;
拆数位是一级到三级的万能工具,本讲会把它讲透。
| 运算符 | 名称 | 例子 | 结果 |
|---|---|---|---|
+ |
加 | 7 + 3 |
10 |
- |
减 | 7 - 3 |
4 |
* |
乘 | 7 * 3 |
21 |
/ |
除(整数间是整除) | 7 / 3 |
2 |
% |
求余(取模) | 7 % 3 |
1 |
⚠️ 乘号必须写
*,不能省略也不能写×。 数学里的 $2a$ 在 C++ 里必须写成2 * a。
/:整除是一级最大的坑规则一:两个整数相除,结果还是整数,小数部分直接砍掉。规则二:只要有一边是小数,就按小数算。
#include<iostream>
using namespace std;
int main() {
cout << 7 / 3 << endl;
cout << 7.0 / 3 << endl;
cout << 7 / 3.0 << endl;
cout << 1 / 2 << endl;
return 0;
}
输出:
2
2.33333
2.33333
0