1664: 完善程序(Josephus 问题)
Memory Limit:128 MB
Time Limit:1.000 S
Judge Style:Text Compare
Creator:
Submit:72
Solved:7
Description
(Josephus 问题)有 n 个人围成一个圈,依次标号 0 至 n-1。从 0 号开始,依次 0 1 0 1 ... 交替报数,报到 1 的人会离开,直至圈中只剩下一个人。求最后剩下人的编号。
试补全下面的程序。
①处应填( )
A. i < n B. c < n C. i < n - 1 D. c < n - 1
②处应填( )
A. i % 2 == 0 B. i % 2 == 1 C. p D. !p
③处应填( )
A. i++ B. i = (i + 1) % n C. c++ D. p ^= 1
④处应填( )
A. i++ B. i = (i + 1) % n C. c++ D. p ^= 1
⑤处应填( )
A. i++ B. i = (i + 1) % n C. c++ D. p ^= 1
Sample Input Copy
Sample Output Copy
HINT
选择的答案,依照下列程序填入:
#include<cstdio>
int main(){
int n=0;
scanf("%d",&n);
switch(n){
/*****************************************
* 答题区
* 请将答案写在以下的printf函数的双引号中
* 例如: case 1: printf("A"); break;
* ^第一题 ^答案为A
****************************************/
case 1: printf("B"); break;
case 2: printf("D"); break;
case 3: printf("A"); break;
case 4: printf("A"); break;
case 5: printf("B"); break;
//*****************************************
// 答题结束
//****************************************
}
return 0;
}