编程题:约瑟夫生者死者小游戏
30 个人在一条船上,超载,需要 15 人下船。
于是人们排成一队,排队的位置即为他们的编号。
报数,从 1 开始,数到 9 的人下船。
如此循环,直到船上仅剩 15 人为止,问都有哪些编号的人下船了呢?
int array[30]={0}; int counter=0; //存储出去的人数 int number=0; //存储当前数到的数 int index=0; while(counter<15) //counter==15的时候结束循环 { if(!(index<30)) { index=0; } if(array[index]==0) { number++; if(number==9) { array[index]=1; number=0; counter++; cout<<index+1<<endl; } } index++; }
#include<iostream> using namespace std;
int main() { int array[30]={0};
int counter=0; int terminator=15;
while(terminator) {
for(int i=0;i<30;i++) { if(array[i]==0) { counter++; if(counter==9) { array[i]=1; terminator--; counter=0; cout<<i+1<<endl; } } }
}
#include<std...
用户登录可进行刷题及查看答案
#include<stdio.h> int c = 0; int i = 1; int j = 0; int a[30] = { 0 }; int b[30] = { 0 }; int main() { while (i<=31) { if (i == 31) { i = 1; } else if (c == 15) { break; } else { if (b[i] != 0) { i++; continue; } else { j++; if (j != 9) { i++; continue; } else { b[i] = 1; a[i] = j; j = 0; printf("第%d号下船了\n", i); i++; c++; } } } } }
登录后提交答案