#CPP4. 【Level 0】循环

【Level 0】循环

Description

  我们往往会遇到需要多次执行同一个操作的情形,例如在常量与变量一节中计算3.15363.153^6,假设要计算3.153203.153^{20},显然写十九个乘号来计算是十分不便的,因此我们需要用循环来操作。

  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,最终当x101时表达式为false,退出循环。

  for循环与while循环等价:

for (expa; expb; expc) {
    // do something...
}

  进入循环前,执行expa,每次循环判断的表达式为expb,每次执行完循环体后,再执行一次expc。通常,我们在expa声明循环的临时变量,在expc对循环的临时变量进行修改,但并不一定要这样做。

  forwhile可以进行等价的转化,例如

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

  一个正整数n (n1000)n \space (n \leq 1000)

Output

  一个正整数,计算1+2+3+...+(n1)+n1+2+3+...+(n-1)+n的结果

  使用循环的方法求解

Samples

3
6