Пусть ряд 8000 светильников. Изначально горит только тот, что расположен слева. Затем каждую секунду выполняется следующая операция: каждая лампа меняет состояние (включена или выключена), если за секунду до этого горела левая от нее. Крайняя левая лампа горит постоянно. Эта операция мгновенная. Процесс останавливается, когда лампа на правом конце загорается впервые. Сколько ламп горит?
Моя следующая реализация проблемы ложна, вы можете мне помочь?
#include <cstdio>
int t[8001][2];
int main()
{
t[1][0] = 1;
t[1][1] = 1;
int cpt1 = 0, ip = 0;
while (t[8000][0] != 1 && t[8000][1] != 1)
{
ip++;
for (int j=2;j<8001;j++)
{
if(t[j-1][!(ip&1)])
t[j][(ip & 1)] = !t[j][!(ip & 1)];
}
}
for(int j = 1;j < 8001; j++)
cpt1 += t[j][1];
printf("cpt=%d\n", cpt1);
}
isSwitchedOn
. Таким образом, может быть легче обнаружить ошибку. Ваш код в текущем состоянии очень трудно понять. - person Zdeněk Jelínek   schedule 18.09.2017#include<cstdio>
+[C]
- хммм. - person chux - Reinstate Monica   schedule 18.09.2017