【Level 0】循环
You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.
Description
我们往往会遇到需要多次执行同一个操作的情形,例如在常量与变量一节中计算,假设要计算,显然写十九个乘号来计算是十分不便的,因此我们需要用循环来操作。
while
循环的结构如下
while (exp) {
// do something...
}
只要exp
的值为true
,就执行一次花括号内(循环体)的内容,我们自然可以发现,如果exp
一直为true
,程序将一直重复不断地运行这一段代码。
因此一般情况下,我们需要在循环体内修改,使exp
的值发生变化,这样循环才能在完成任务后继续执行后续的代码。
假设我们要计算1+2+...+100
,这时结束条件就是x > 100
int x = 1, sum = 0;
while (x <= 100) {
sum = sum + x; // 也可以写成sum += x;
}
为什么上面的代码是死循环?这是因为我们没有改变x
的值,导致x <= 100
一直为true
,所以不停地执行sum += x;
使得程序无法向下继续执行。因此我们要修改x
,使得循环退出:
int x = 1, sum = 0;
while (x <= 100) {
sum += x;
x += 1; // 也可以写成x++;
}
这样,每次循环x
都会增加1,最终当x
为101
时表达式为false
,退出循环。
for
循环与while
循环等价:
for (expa; expb; expc) {
// do something...
}
进入循环前,执行expa
,每次循环判断的表达式为expb
,每次执行完循环体后,再执行一次expc
。通常,我们在expa
声明循环的临时变量,在expc
对循环的临时变量进行修改,但并不一定要这样做。
for
和while
可以进行等价的转化,例如
int sum = 0;
for (int x = 1; x <= 100; x++) {
sum += x;
}
等价于
int x = 1, sum = 0;
while (x <= 100) {
sum += x;
x++;
}
Format
Input
一个正整数
Output
一个正整数,计算的结果
使用循环的方法求解
Samples
3
6
C++入门
- Status
- Done
- Rule
- IOI
- Problem
- 8
- Start at
- 2023-12-14 0:00
- End at
- 2024-1-24 16:00
- Duration
- 1000 hour(s)
- Host
- Partic.
- 24