http://en.wikipedia.org/wiki/Josephus_problem
Пользователь может выбрать, сколько людей в круге.
Пользователь может выбрать стоимость каждого человека.
Пользователь может выбрать счетное число для смерти людей.
ех. Пользователь выбирает 5, каждый пятый должен умереть.
Я думал что-то вроде —
Пользователь выбирает количество человек из 50
PeopleArray становится PeopleArray [50]
Пользователь выбирает значение элементов в PeopleArray [50] Они должны будут ввести 50 значений для 50 элементов
Смерть
Пользователь выбирает 3, так что каждый третий человек умирает, как бы я стер это число из массива.
Проблема ^ -Не уверен, как это сделать с массивами
int main(){
int people = 5;
int peopleArray[5];
int peopleValue = 1;
int death;
cout << "Enter the amount of people: ";
cin >> people;
peopleArray[people];
for(int x = 1;x<=people;x++){
cout << "Enter the value of person #" << x << ":";
cin>> peopleValue;
peopleArray[peopleValue]; //Suppose to put the value into the array
}
}
Если я правильно вас понимаю, то, что вы пытаетесь сделать, было бы что-то вроде …
vector<int> totalPeople;
int totalIn;
int deathIn;
int person = 1;
int nthPerson = 0;
cout << "Enter total number of people." << endl;
cin >> totalIn;
cout << endl << "Pick the nth person." << endl;
cin >> deathIn;
for ( int i = 0; i < totalIn; i++ )
{
totalPeople.pushback(person++);
}
nthPerson = deathIn - 1;
while ( nthPerson < totalPeople.size() )
{
totalPeople.erase(totalPeople.begin() + nthPerson);
nthPerson = nthPerson + (deathIn -1);
}
или скажите, что totalPeople [nthPerson] = 0;
Это удалит n-го человека из общего списка людей.