Информация об изменениях

Сообщение Re[3]: задача от 17.09.2023 23:41

Изменено 17.09.2023 23:54 MaximVK

Re[3]: задача
Здравствуйте, Pyromancer, Вы писали:

P>Да ничего сложного вроде, два цикла и печатай символ еcли хоть одно из 6 условий верно и пробел иначе

P>
P>x = 15
P>for i in range(x):
P>    for j in range(x):
P>        if i in (0, x-1) or j in (0,x-1,i,x-i-1):
P>            print('#', end='')
P>        else:
P>            print(' ', end='') 
P>    print('')
P>


Задумался, а можно ли упростить условие под if или доказать, что проще нельзя (вопрос, конечно, как определить "проще"):
Я вот сходу только такое придумал, операций тут больше, но сравнений меньше
if (i+j)%x in (i,j,0,2*i,2*i-x)


Ну или там
(x*y)*(n-x)*(n-y)*(x-y)*(n-x-y)
Re[3]: задача
Здравствуйте, Pyromancer, Вы писали:

P>Да ничего сложного вроде, два цикла и печатай символ еcли хоть одно из 6 условий верно и пробел иначе

P>
P>x = 15
P>for i in range(x):
P>    for j in range(x):
P>        if i in (0, x-1) or j in (0,x-1,i,x-i-1):
P>            print('#', end='')
P>        else:
P>            print(' ', end='') 
P>    print('')
P>


Задумался, а можно ли упростить условие под if или доказать, что проще нельзя (вопрос, конечно, как определить "проще"):
Я вот сходу только такое придумал, операций тут больше, но сравнений меньше
if (i+j)%x in (i,j,0,2*i,2*i-x)


Ну или там
if x*y*(n-x)*(n-y)*(x-y)*(n-x-y) == 0