Переключение лампочек
Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain
Здраствуйте! У меня есть задачка,подскажите, пожалуйста, в каком направлении двигаться.
В вашем распоряжении бесконечное количество лампочек в выключенном состоянии. На каждом этапе игры включаются (если они были выключены) или выключаются (если они были включены) все те лампочки, номера которых кратны номеру этапа игры. Определите состояние N-й лампочки после N-го этапа игры.
Вывести T строк с указанием состояния соответствующей лампочки: 0 — лампочка выключена, 1 — включена.
Входные данные Результат работы
2
1 1
5 0
В вашем распоряжении бесконечное количество лампочек в выключенном состоянии. На каждом этапе игры включаются (если они были выключены) или выключаются (если они были включены) все те лампочки, номера которых кратны номеру этапа игры. Определите состояние N-й лампочки после N-го этапа игры.
Вывести T строк с указанием состояния соответствующей лампочки: 0 — лампочка выключена, 1 — включена.
Входные данные Результат работы
2
1 1
5 0
- Romeo
- Сообщения: 3126
- Зарегистрирован: 02 мар 2004, 17:25
- Откуда: Крым, Севастополь
- Контактная информация:
Как игры проводятся, вроде бы понятно. А вот на счёт вывода программы - полная путаница. Можно ли объяснить, что такое T, а так же то, что обозначают цифры в конце сообщения, причём каждую цифру отдельно?
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Формат входных данных
Первая строка — количество тестов T (1 ≤ T ≤ 10). Каждый тестовый случай содержит единственное число N (0 < N ≤ 105) — номер этапа игры.
Формат результата
Вывести T строк с указанием состояния соответствующей лампочки: 0 — лампочка выключена, 1 — включена.
Первая строка — количество тестов T (1 ≤ T ≤ 10). Каждый тестовый случай содержит единственное число N (0 < N ≤ 105) — номер этапа игры.
Формат результата
Вывести T строк с указанием состояния соответствующей лампочки: 0 — лампочка выключена, 1 — включена.
- Romeo
- Сообщения: 3126
- Зарегистрирован: 02 мар 2004, 17:25
- Откуда: Крым, Севастополь
- Контактная информация:
Первая строка - 2. Тут всё ясно, это наше T.
Далее, по всей видимости, идут T штук номеров этапов игры, то есть это 1 и 1. Здесь тоже всё пока понятно и совпадает с ТЗ.
А вот что далее? Что обозначают цифры 5 и 0? Это результат? В задании сказано, что результат должен состоять и T строк. Я здесь вижу только одну строку. И если 0 можно ещё расценить, как "лампочка выключена", то как расценивать 5?
Я же попросил расшифоровать каждую цифру. Приведённых разъянений не достаточно, так как они не совпадают с фактическими данными. Natya, это некрасиво просить помощи, не объяснив толком, в чём она должна заключаться. Это, как минимум, неуважительно по отношению к потенциальному помощнику, который вынужден тратить время на то, чтобы ломать голову над недоформулированным заданием, строя догадки и делая предположения.
Далее, по всей видимости, идут T штук номеров этапов игры, то есть это 1 и 1. Здесь тоже всё пока понятно и совпадает с ТЗ.
А вот что далее? Что обозначают цифры 5 и 0? Это результат? В задании сказано, что результат должен состоять и T строк. Я здесь вижу только одну строку. И если 0 можно ещё расценить, как "лампочка выключена", то как расценивать 5?
Я же попросил расшифоровать каждую цифру. Приведённых разъянений не достаточно, так как они не совпадают с фактическими данными. Natya, это некрасиво просить помощи, не объяснив толком, в чём она должна заключаться. Это, как минимум, неуважительно по отношению к потенциальному помощнику, который вынужден тратить время на то, чтобы ломать голову над недоформулированным заданием, строя догадки и делая предположения.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Извините, пожалуйста. Сначала вводим T - количество тестов(в примере вводим 2 тестовых случая).
Вводим 1, чтобы узнать включена ли лампочка на 1-ом этапе игры. Программа высчитывает что на этом этапе игры лампочка включена(вывелась 1).
Вводим 5 , чтобы узнать включена или выключена ли лампочка на 5-ом этапе игры.
Выводится 0(это означает, что лампочка выключена).
ввели 2 -тестовых случая
ввели 1(этап игры)
получили 1(включена лампочка)
ввели 5(этап игры)
получили 0(выключена)
Вводим 1, чтобы узнать включена ли лампочка на 1-ом этапе игры. Программа высчитывает что на этом этапе игры лампочка включена(вывелась 1).
Вводим 5 , чтобы узнать включена или выключена ли лампочка на 5-ом этапе игры.
Выводится 0(это означает, что лампочка выключена).
ввели 2 -тестовых случая
ввели 1(этап игры)
получили 1(включена лампочка)
ввели 5(этап игры)
получили 0(выключена)
- Romeo
- Сообщения: 3126
- Зарегистрирован: 02 мар 2004, 17:25
- Откуда: Крым, Севастополь
- Контактная информация:
Из твоих слов следует, что лампочка одна. А зачем в задании тогда слова о бесконечном количестве лампочек и о кратности переключений? И если всё же лампочек действительно много, то как мы определяем какую лампочку проверять, когда ответ выводим? Ведь мы считываем номер игры, но не считываем номер лампочки.
Пойми, я не придираюсь к словам. Пока я полность не пойму задания, я не смогу тебе помочь с алгоритмом. Пока что я вижу нестыковки, которые не позволяют понять, как программа должна работать.
Пойми, я не придираюсь к словам. Пока я полность не пойму задания, я не смогу тебе помочь с алгоритмом. Пока что я вижу нестыковки, которые не позволяют понять, как программа должна работать.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Спасибо))Ваши замечания справедивы. Достаточно скользкое условие задачи.
Судя по условию:
На каждом этапе игры включаются (если они были выключены) или выключаются (если они были включены) все те лампочки, номера которых кратны номеру этапа игры. Определите состояние N-й лампочки после N-го этапа игры.
То есть получается нужно определить состояние (вкл. или выкл.) лампочки на N-ом этапе игры, исходя из того что номер N этой лампочки кратен номеру игры. Не знаю,как можно представить бесконечное множество лампочек.
Судя по условию:
На каждом этапе игры включаются (если они были выключены) или выключаются (если они были включены) все те лампочки, номера которых кратны номеру этапа игры. Определите состояние N-й лампочки после N-го этапа игры.
То есть получается нужно определить состояние (вкл. или выкл.) лампочки на N-ом этапе игры, исходя из того что номер N этой лампочки кратен номеру игры. Не знаю,как можно представить бесконечное множество лампочек.
- Romeo
- Сообщения: 3126
- Зарегистрирован: 02 мар 2004, 17:25
- Откуда: Крым, Севастополь
- Контактная информация:
Вот самый интересный вопрос - какой именно лампочки. Ведь номер игры мы считываем, а номер лампочки - нет. Нужно корректировать условия и пример вывода данных, так как на данный момент они не согласуются. И пока они не будут скореектированы, алгоритм написать не получится никак.То есть получается нужно определить состояние (вкл. или выкл.) лампочки на N-ом этапе игры
По поводу бесконечного количества лампочек. Их не нужно все сразу просчитывать. Хитрость в том, что скорее всего (после корретировки задания у преподавателя) окажется, что мы должны считывать ещё и нормер лампочки, так что программма сведётся к рассчёту одной лампочки с известным номером, но никак не всех лампочек (последнее, если честно, вообще невозможно, так как память компьютера ограничена, а лампочек бесконечное множество).
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
То есть на первом шаге включаются все. На втором все чётные выключаются, не чётные остаются включены. На третьем включаются кратные 6-ти, так как они чётны и кратны 3-м, остальные кратные 3-м выключаются. На четвёртом включаются кратные 4-м, трём они не кратны, но чётны. На пятом выключаются кратные пяти. На шестом кратные 6-ти выключаются и так далее. Достаточно рассмотреить, что Достаточно рассмотреть, что на каждом шаге происходит с N-ной лампочкой.Natya писал(а):Здраствуйте! У меня есть задачка,подскажите, пожалуйста, в каком направлении двигаться.
В вашем распоряжении бесконечное количество лампочек в выключенном состоянии. На каждом этапе игры включаются (если они были выключены) или выключаются (если они были включены) все те лампочки, номера которых кратны номеру этапа игры. Определите состояние N-й лампочки после N-го этапа игры.
Вывести T строк с указанием состояния соответствующей лампочки: 0 — лампочка выключена, 1 — включена.
Входные данные Результат работы
2
1 1
5 0
Код: Выделить всё
int CheckLamp(int N)
{
int i;
int Result;
for (Result=0, i=1; i<=N; ++i)
{
if ((N%i)==0)
{
Result=1-Result;
}
}
return Result;
}
Код: Выделить всё
#include <iostream>
int CheckLamp(int N);
int main()
{
int T;
int i;
int N;
std::cin>>T;
for (i=1; i<=T; ++i)
{
std::cin>>N;
std::cout<<CheckLamp(N)<<std::endl;
}
return 0;
}
int CheckLamp(int N)
{
int i;
int Result;
for (Result=0, i=1; i<=N; ++i)
{
if ((N%i)==0)
{
Result=1-Result;
}
}
return Result;
}
Писать можно на чём угодно, но зачем же так себя ограничивать? Пиши на c.