Ваша задача - ввести одно целочисленное значение и распечатать зигзагообразный шаблон, используя косую черту и обратную косую черту.
- Целочисленный ввод определяет длину каждого зигзага, а также количество зигзагов и зигзагов.
- Шаблон всегда начинается справа налево
Тестовые случаи
4->
/
/
/
/
\
\
\
\
/
/
/
/
\
\
\
\
2->
/
/
\
\
0->
1->
/
8->
/
/
/
/
/
/
/
/
\
\
\
\
\
\
\
\
/
/
/
/
/
/
/
/
\
\
\
\
\
\
\
\
/
/
/
/
/
/
/
/
\
\
\
\
\
\
\
\
/
/
/
/
/
/
/
/
\
\
\
\
\
\
\
\
Ответы:
C (gcc) ,
10810210198807672 байтаN-n-1
в гольфN+~n
Z
инкремента в условие циклаprintf("%c\n",...)
вместоputchar(...)
и,puts("")
printf("%*s",n,"");
для печатиn
пробелов вместо использования циклаj;for(j=n;j--;)putchar(32);
и объединения обоихprintf(...);
вызововprintf("%*c",-~n,...);
вместоprintf("%*s%c",n,"",...);
Попробуйте онлайн!
источник
Z,n,j;f(N){for(Z=0;Z<N;Z++)for(n=N;n--;putchar(Z%2?92:47),puts(""))for(j=Z%2?N+~n:n;j--;)putchar(32);}
102 байта . Убрал фигурные скобки, поместив все внутри петель; и изменилсяN-n-1
наN+~n
.Z%2?...:...
и заменыZ<N;Z++
наZ++<N;
.i;f(N){for(i=0;i<N*N;i++)printf("%*c\n",i/N%2?i%N+1:N-i%N,i/N%2?92:47);}
. Попробуйте онлайн!Древесный уголь ,
16109 байтПопробуйте онлайн! Ссылка на подробную версию кода.
источник
InputNumber
тоже был сломан в режиме игры в гольф?)MATL , 17 байт
Попробуйте онлайн!
объяснение
источник
C # (.NET Core) ,
117103101 байтПопробуйте онлайн!
источник
a=>{var o="";for(int z=a+1,e=0;e<a*a;)o+=(e++/a%2<1?"/".PadLeft(--z):@"\".PadLeft(z++))+"\n";return o;}
103 байта Вам не нужны все эти скобки; Вы можете объединитьint
; и добавить только+"\n"
один раз.a=>{for(int z=a+1,e=0;e<a*a;)System.Console.WriteLine(e++/a%2<1?"/".PadLeft(--z):@"\".PadLeft(z++));}
101 байтSOGL V0.12 ,
13129 байтовПопробуй здесь!
может быть 8 байтов,
╝F{±↔}P}
если тестовый пример 0 не требуетсяОбъяснение:
источник
Python 2 ,
696862 байта-1 байт благодаря Джонатану Фреху
Попробуйте онлайн!
источник
Математика, 84
90байтовЯ понятия не имею, почему
\
явно темнее, чем/
.источник
(n=#;Grid@Array[If[Abs[n-(s=Mod[#-1,2n])-.5]==#2-.5,If[s<n,"/","\\"],""]&,{n^2,n}])&
Jq 1,5 ,
9489 байтобъяснение
Пробный прогон
Попробуйте онлайн!
источник
Java 8,
140134116 байт-24 байта благодаря @Nevay .
Объяснение:
Попробуй это здесь.
источник
c-->f*(b-n-~b)
(-6 байт).n->{String r="";for(int a=0,b,c;a++<n;)for(b=n;b-->0;r+=a%2>0?"/\n":"\\\n")for(c=b-n+b|-a%2;++c<b;r+=" ");return r;}
Javascript ES8,
83797876757471 байт* уменьшил 1 байт с ES8 благодаря Shaggy
Тест здесь
источник
i
установки параметра по умолчанию. Счетчик байтов также отключен.Pyth , 20 байт
Попробуйте онлайн!
источник
PowerShell , 81 байт
Попробуйте онлайн!
Тьфу, это безобразно Так много повторного кода, плюс 7 байтов, необходимых для учета
0
особого случая. Предложения по игре в гольф приветствуются.источник
Pyth, 17 байт
Попробуйте онлайн: демонстрация
Объяснение:
источник
Python 3:
90 байт82 байтСпасибо @Jonathan Frech за указание на то, что печать не нужна и что первый зиг был неправильным
источник
] for
->]for
.print(...)
, функция, возвращающая строку, будет действительной. Кроме того, я думаю, что ваш начальный зиг ориентирован неверно (\, а не /).(abs(...)-1)
->~-abs(...)
.05AB1E ,
1716 байтПопробуйте онлайн!
объяснение
Текущая лучшая попытка с использованием холста:
источник
С ++,
9291 байт-1 байт благодаря Кевину Круйссену
Благодаря силе магии
printf
источник
int i=0,j
в цикл forfor(int i=0,j;i<n;++i)
для сохранения байта.Java (OpenJDK 8) ,
13110698969491 байтПопробуйте онлайн!
источник
i->{for(int j=0;j<i*i;System.out.printf("%"+(j/i%2<1?i-j%i+1:j%i+2)+"s",j++/i%2<1?"/\n":"\\\n"));}
(98 байт).Dyalog APL ,
39363534 байтаПопробуйте онлайн!
1 байт сохранен благодаря Zacharý
источник
⎕IO
быть0
, а затем удалить¯1+
.(⌽,⊢)⍳⍵
вместо(⌽⍳⍵),⍳⍵
Perl 5 , 70 + 1 (
-n
) = 71 байтПопробуйте онлайн!
источник
Котлин , 102 байта
Попробуйте онлайн!
источник
Excel VBA,
8483 байтаФункция анонимного непосредственного окна VBE, которая берет входные данные из диапазона
[A1]
и выводит в непосредственное окно VBEисточник
Желе , 15 байт
Попробуйте онлайн!
Полная программа.
источник
Haskell ,
8685 байтПопробуйте онлайн!
Сохранено один байт благодаря Laikoni
Повторите zig ++ zag и возьмите первые
n*n
строки.источник
cycle$ ...
instead ofcycle( ... )
saves a byte.J,
39 35 33 3225 bytesTry it online!
источник
Dyalog APL,
4140 bytes⎕IO
must be0
.Try it online!
источник
D, 105 bytes
Try it online!
Lifted from HatsuPointerKun's C++ answer.
источник