N серых и M белых мышей сидят по кругу. Кошка ходит по
кругу по часовой стрелке и съедает каждую S -тую мышку. В первый раз счет
начинается с серой мышки. Составить алгоритм определяющий порядок в котором
сидели мышки, если через некоторое время осталось K серых и L белых мышей
Другие языки программирования и технологии
c# задание олимпиады помогите с кодом
Напишу на С++ (возможны ошибки, т. к. компилятора под рукой нет)
char* mass_mouse(int S,int N,int M,int K,int L)
{
char* massMouse[N+M]; // если это не прокатит, то необходимо выделять память динамически
int curK=N, curL = M;
for (int i = 0; i<N+M; i++)
{
massMouse[i]='E';//empty place
}
int curInd = 0, curS = 0;
while(curK != K && curL != L) // размещение тех мышей, которых съест кошка.
{
if (massMouse[curInd] == 'E')
{
curInd++;curS++;
if (curInd>=N+M) curInd=0;
if (curS == S)
{
if (curK>K)
{
massMouse[curInd] = 'G'; // grey mouse
curK--;
} else
if (curL>L)
{
massMouse[curInd] = 'W'; // white mouse
curL--;
}
S=0;
}
} ///if (massMouse[curInd] == 'E')
} //while
for (int i=0;i<N+M;i++) // размещение оставшихся мышей
{
if (massMouse[i] == 'E')
{
if (curK > 0)
{
massMouse[i]='G';
curK--;
}else
if (curL > 0)
{
massMouse[i]='W';
curL--;
}
}
} //for (int i=0;i<N+M;i++)
}
P.S. насколько я знаю, в С# нет указателей (или их применение ограничено) , поэтому используй динамические массивы или класс Vector из STL. (вроде в С# должно быть такая штука, но может называться по-другому)
char* mass_mouse(int S,int N,int M,int K,int L)
{
char* massMouse[N+M]; // если это не прокатит, то необходимо выделять память динамически
int curK=N, curL = M;
for (int i = 0; i<N+M; i++)
{
massMouse[i]='E';//empty place
}
int curInd = 0, curS = 0;
while(curK != K && curL != L) // размещение тех мышей, которых съест кошка.
{
if (massMouse[curInd] == 'E')
{
curInd++;curS++;
if (curInd>=N+M) curInd=0;
if (curS == S)
{
if (curK>K)
{
massMouse[curInd] = 'G'; // grey mouse
curK--;
} else
if (curL>L)
{
massMouse[curInd] = 'W'; // white mouse
curL--;
}
S=0;
}
} ///if (massMouse[curInd] == 'E')
} //while
for (int i=0;i<N+M;i++) // размещение оставшихся мышей
{
if (massMouse[i] == 'E')
{
if (curK > 0)
{
massMouse[i]='G';
curK--;
}else
if (curL > 0)
{
massMouse[i]='W';
curL--;
}
}
} //for (int i=0;i<N+M;i++)
}
P.S. насколько я знаю, в С# нет указателей (или их применение ограничено) , поэтому используй динамические массивы или класс Vector из STL. (вроде в С# должно быть такая штука, но может называться по-другому)
Я пишу программы (все программы немного похожи это сайты и десктопные приложения)
А так попробуй решить задачу, мне это часто помогает, тебе останется лишь протестировать программу, там я понимаю понадобится только клавиатура и экран (киборд, скрин) , ну и память можно прицепить ради интереста)))
А так попробуй решить задачу, мне это часто помогает, тебе останется лишь протестировать программу, там я понимаю понадобится только клавиатура и экран (киборд, скрин) , ну и память можно прицепить ради интереста)))
Язык данный не знаю, могу только немного прочитать его (Все языки просто похожи синтаксисом) .
А так, попробуй начертить алгоритм на листе бумаги. Мне это часто помогает.
Тебе останется всего лишь составить данный алгоритм на "ИДЕ", там как я понимаю понадобятся только циклы, условия (иф, елси) , ну и рандом можно прицепить ради интереста)))
А так, попробуй начертить алгоритм на листе бумаги. Мне это часто помогает.
Тебе останется всего лишь составить данный алгоритм на "ИДЕ", там как я понимаю понадобятся только циклы, условия (иф, елси) , ну и рандом можно прицепить ради интереста)))
Похожие вопросы
- Помогите, лёгкий код C++
- Помогите откорректировать код в C++
- кто разбирается в html? дали легкое задание, но я вообще 0. Помогите с кодом
- Помогите испрвить код Переписать первые элементы каждой строки матрицы a(n*m), больше некоторого числа C, в массив b .
- Помогите исправить код так, чтобы работал! :) (C#)
- Помогите с кодом на c++
- помогите закончить код C++
- помогите переписать код с паскаля на c++
- Помогите написать код на C++
- Помогите написать код на C++