HM035 四段节拍

HM035 四段节拍

HM035 四段节拍

来源: 第 35 集 程序流程结构-循环结构-for循环

难度: 入门

时间限制: 1s

空间限制: 64MB

题目描述

for 循环小括号里有三段表达式,彼此用**分号**隔开:

for (起始表达式; 条件表达式; 末尾循环体)

真正要重复做的事写在后面的大括号里。三段都可以留空、挪到循环外或循环体内,但写在一起时“初始化、判断、更新”最清楚。它和 whiledo while 没有本质的效率差别,只是结构更紧凑,日常更常用。

把起始、条件、循环体、末尾分别叫做 0 号、1 号、2 号、3 号,执行顺序是:

  • 0 号**只执行一次**(创建或给计数器赋初值);
  • 然后反复走 1 号 → 2 号 → 3 号;
  • 一旦 1 号为假(例如 \(i \ge n\)),立刻结束,不再进循环体。这和在循环体开头写 if (i >= n) break; 再自己做 \(i++\) 是同一条退出路。

读入整数 \(n\),模拟 for (int i = 0; i < n; i++):先按循环体顺序输出 \(i\) 的值,再统计四段各执行了多少次。

输入格式

一行一个整数 \(n\)(\(0 \le n \le 1000\))。

输出格式

第一行:循环体里依次出现的 \(i\),相邻之间一个空格;若一次都没进循环体,输出 NONE

第二行四个整数,用空格分隔,依次为 0、1、2、3 号的执行次数。每行末尾换行。

样例

输入 #1

10

输出 #1

0 1 2 3 4 5 6 7 8 9
1 11 10 10

输入 #2

0

输出 #2

NONE
1 1 0 0

说明

样例 1 即打印 0 到 9:起始把 \(i\) 做成 \(0\),只做一次;条件在 \(i=0\ldots9\) 为真、在 \(i=10\) 为假,共判断 11 次;循环体和末尾的 \(i++\) 各 10 次。

样例 2:起始仍做一次,第一次判断 \(0 < 0\) 即为假,后面两段一次都不走。

信息

ID
1034
难度
9
分类
(无)
标签
(无)
递交数
1
已通过
1
通过率
100%
上传者