使用一个布尔类型,或者使用0和1的枚举类型的数组怎么样?
1.设置一个计数器counter3为0,用于每前进3项的过程中产生的有效统计。设置counterDrop为0,用于统计被排除的项目数量,也是循环的终止条件。所有项目初始化为false。false含义是未排除,true的含义是已经排除。使用指针从数组的第0项开始扫描。
2.在第0项开始向后依次扫描,当扫描的项目为true,counter就不加1,扫描项目i继续前进(条件见第4项),继续向下扫描,如果扫描的项目是false,counter就加1,i继续前进
3.当counter为3时,该项目的false改为true,同时counter变为0
4.指针走到结尾时,需要回到数组首部。因此i继续前进的条件是:i=(i+1)%15
5.整个循环的终止条件是,当counterDrop==14时。
6.从第0项开始扫描,true的项目跳过,false的项目输出(叛徒),运行结束。
这是一个笨办法,欢迎改进。 |