Перейдіть на створення Java


14

Ваш начальник хоче, щоб ви написали такий код:

public static boolean isPowerOfTen(long input) {
  return
    input == 1L
  || input == 10L
  || input == 100L
  || input == 1000L
  || input == 10000L
  || input == 100000L
  || input == 1000000L
  || input == 10000000L
  || input == 100000000L
  || input == 1000000000L
  || input == 10000000000L
  || input == 100000000000L
  || input == 1000000000000L
  || input == 10000000000000L
  || input == 100000000000000L
  || input == 1000000000000000L
  || input == 10000000000000000L
  || input == 100000000000000000L
  || input == 1000000000000000000L;
}

(Мартін Сміт, /codereview//a/117294/61929 )

що ефективно і так, але не так весело. Оскільки ви хочете мінімізувати кількість натискань клавіш, які вам потрібно зробити, ви пишете більш коротку програму або функцію (або метод), яка виводить цю функцію для вас (або повертає рядок до виводу). А оскільки у вас є власна спеціальна клавіатура однокадрового повного діапазону з усіма 120 737 клавішами, необхідними для всіх Unicode 8.0, ми рахуємо символи unicode замість натискання клавіш. Або байти, якщо ваша мова не використовує вихідний код unicode.

Будь-який вхід вашої програми чи функції зараховується до вашого рахунку, оскільки, очевидно, ви також повинні ввести це.

Роз'яснення та редагування:

  • Видалено 3 пробіли після останнього }
  • Видалено єдиний пробіл після return
  • Повернення рядка виводу з функції / методу нормально

12
0==Math.log10(input)%1
SuperJedi224

7
Ви кажете " ми рахуємо символи unicode ", але потім ви відразу скажете " Або байти ". Який це?
Дверна ручка

2
Що б ви не хотіли, тобто той, який дає найнижчий бал. Додані байти, щоб дозволити мови, які не використовують джерело тексту.
Філіп Хаглунд

1
while(input%10==0) input/=10; return input == 1;
PSkocik

4
05AB1E використовує Windows CP1252, який є байтами, а не unicode. Я прагну до стандартних правил, але мені постійно кажуть, що я весь час помиляюся.
Філіп Хаглунд

Відповіді:


15

PostgreSQL, 158 символів

select'public static boolean isPowerOfTen(long input) {
  return
   '||string_agg(' input == 1'||repeat('0',x)||'L','
  ||')||';
}'from generate_series(0,18)x

Я ніколи не бачив RDBMS, який використовується як відповідь на гольф коду ... солодкий! +1
Chris Cirefice

@ChrisCirefice SQL насправді дещо поширений на цьому сайті. (Або принаймні частіше, ніж можна очікувати.)
Алекс А.

@AlexA. Гм, ну PCG - це один із моїх менш відвідуваних сайтів SE, тому я ніколи не бачив відповіді SQL :)
Кріс Cirefice

7

Vim 97 натискань клавіш

ipublic static boolean isPowerOfTen(long input) {
  return
  || input == 1L<esc>qyYpfLi0<esc>q16@yo}<esc>3Gxx

Ну, я сьогодні на ролику з vim proizvod Java, так чому б не продовжувати тенденцію!


заміна fLна $міг би врятувати вас натисканням клавіші
Leaky Nun

Крім того, третій рядок input == 1Lвирівнюється по одному байту ...
Leaky Nun

Отже, xслід змінити останнє, r<sp>і тоді кількість натискань клавіш буде незмінною
Leaky Nun


7

CJam, 52 символи

YA#_("𐀑򀺸󆚜񸎟񜏓񞍁򛟯󩥰󾐚򉴍􍼯𹾚򶗜򳙯󭧐񹷜񊽅𸏘򴂃򦗩󧥮𤠐𰑈򶂤𘏧󔆧򇃫󡀽򊠑񊩭򯐙񛌲񊚩𤱶𻺢"f&bY7#b:c~

Спробуйте в Інтернеті!

1 етап

Використовуючи символи Unicode U + 10000 до U + 10FFFF, ми можемо кодувати 20 біт в одному символі. CJam використовує 16-бітні символи внутрішньо, тому кожен буде закодований як пара сурогатів , одна в діапазоні від U + D800 до U + DBFF, а потім одна в діапазоні від U + DC00 до U + DFFF.

Взявши порозрядне І кожного сурогату з 1023, ми отримуємо 10 біт інформації, яку він кодує. Ми можемо перетворити отриманий масив з бази 1024 в базу 128 для декодування довільної рядки символів Unicode поза BMP в рядок ASCII.

Код робить наступне:

YA#    e# Push 1024 as 2 ** 10.
_(     e# Copy and decrement to push 1023.

"𑅰󻢶񹱨񉽌񍍎񄆋򎿙򧃮񑩹󠷽􂼩􉪦񭲣񶿝򭁩󭰺􄔨񍢤𘎖񮧗򦹀𹀠񐢑񜅈𠟏򘍎󾇗򲁺􅀢򅌛񎠲򦙤򃅒𹣬񧵀򑀢"

f&     e# Apply bitwise AND with 1023 to each surrogate character.
b      e# Convert the string from base 1024 to integer.
Y7#    e# Push 128 as 2 ** 7.
b      e# Convert the integer to base 128.
:c     e# Cast each base-128 to an ASCII character.
~      e# Evaluate the resulting string.

2 етап

Процес декодування зверху дає наступний вихідний код ( 98 байт ).

"public static boolean isPowerOfTen(long input) {
  return
   ""L
  || input == ":S6>AJ,f#S*"L;
}"

Спробуйте в Інтернеті!

Код робить наступне:

e# Push the following string.

"public static boolean isPowerOfTen(long input) {
  return
   "

e# Push the following string and save it in S.

"L
  || input == ":S

e# Discard the first 6 characters of S. The new string begins with " input".

6>

e# Elevate 10 (A) to each exponent below 19 (J).

AJ,f#

e# Join the resulting array, using the string L as separator.

S*

e# Push the following string.

"L;
}"

Можливо, ви очікуєте, що веб-сайт на зразок іудаїзму стане стрес-тестуванням підтримки unicode, але це божевільно: D
Філіп Хаглунд

Я бачу рівно два символи між цитатами. Чи можете ви опублікувати шістнадцятку?
Павло

Ви насправді можете побачити їх два? У мене немає такої удачі ... Кодуючи символів, таких як UTF-8, hexdump виглядав би так. tio.run/nexus/bash#AagAV///eHhkIC1nIDH//…
Dennis

6

Java, 217 215 220 219 192 байт

Гольф:

public static String b(){String s="public static boolean isPowerOfTen(long input) {\n  return\n    input == 1L",z="";for(int i=0;i++<18;){z+="0";s+="\n  || input == 1"+z+"L";}return s+";\n}";}

Безголівки:

  public static String a(){
    String s = "public static boolean isPowerOfTen(long input) {\n  return\n    input == 1L", z="";
    for (int i=0; i++ < 18;) {
        z += "0";
        s += "\n  || input == 1"+z+"L";
    }
    return s + ";\n}";
  }

(перша відповідь, вуха)

Спасибі!
-2 байти: user902383
-1 байт: Denham Coote

Зміни:

  • використовуються вкладки замість пробілів
  • пропустив останній рядок виводу: 18 -> 19
  • знята внутрішня петля
  • змінено з друку на повернення рядка

4
вашій внутрішній для циклу не потрібні дужки
user902383

Використовуйте синтаксис Java 8, також скорочений деякі інші речі: ()->{String s="public static boolean isPowerOfTen(long input) {\n\treturn input == 1L";for(int i=0,k;i++<18;){s+="\n\t|| input == 1";for(k=0;k++<i;)s+="0";s+="L";}return s+";\n}";}(180 байт) Тепер повертає рядок замість друку, але це коротше.
Addison Crump

1
+1 для написання багатослівної програми Java, щоб створити ще більш детальну програму Java.
Кіос

замість for(int i=1;i<19;i++)вас можна написати, for(int i=1;i++<19;)який економить байт
Denham Coote

Також заявіть int i=1,k;і тоді можете написати for(;i++<19;)іfor(k=0;k++<i;)
Denham Coote

5

PowerShell, 120 байт

'public static boolean isPowerOfTen(long input) {'
'  return'
"   $((0..18|%{" input == 1"+"0"*$_})-join"L`n  ||")L;`n}"

Перші два рядки - це просто рядкові літерали, які виводяться як є.

Третій рядок починається з трьох пробілів і закінчується, L;`n}"щоб закінчити останні пару байтів. Середній біт всередині блоку сценарію $(...)побудований для циклічного циклу %від і 0до 18кожної ітерації, що створює рядок, який починається з input == 1об'єднаної з відповідною кількістю нулів. Це виплюне масив рядків. Потім ми збираємо -joinкожен елемент масиву, L`n ||щоб досягти нового рядка. Ця велика рядок є результатом блоку сценарію, який автоматично вставляється в середину та вихід.

PS C:\Tools\Scripts\golfing> .\go-generate-some-java.ps1
public static boolean isPowerOfTen(long input) {
  return
    input == 1L
  || input == 10L
  || input == 100L
  || input == 1000L
  || input == 10000L
  || input == 100000L
  || input == 1000000L
  || input == 10000000L
  || input == 100000000L
  || input == 1000000000L
  || input == 10000000000L
  || input == 100000000000L
  || input == 1000000000000L
  || input == 10000000000000L
  || input == 100000000000000L
  || input == 1000000000000000L
  || input == 10000000000000000L
  || input == 100000000000000000L
  || input == 1000000000000000000L;
}

Давно ... :) Дуже вражаюче!
mazzy

4

Pyth, 118 106 103 байт

s[."
{Z-L¡JxÙÿ
LæÝ<­í?¢µb'¥ÜA«Ç}h¹äÚÏß"\nb*4dj"\n  || "ms[." uøs|ÀiÝ"*d\0\L)U19\;b\}

Спробуйте в Інтернеті!

Все це строкове жорстке кодування дійсно з'їдає багато байтів , але я нічого з цим не можу зробити .

Оновлення: збережено 3 байти за допомогою упакованого рядка. Дякуємо @ user81655 за підказку!


Ви можете використовувати упаковані рядки ...
user81655

Я не знаю Pyth, і я не впевнений, чи є спосіб упакувати повний рядок (програма упаковки завжди змінила б його), але упаковка до rта об'єднання nрезультатів у цьому (98 байт).
користувач81655

@ user81655 Спасибі, я не знав, що Pyth це має. :) Має сенс спакувати першу велику струну, тому що накладні форми, які ви розпаковуєте, не варто того для менших рядків.
Денкер

@ user81655 Мені це відомо, але я нараховую 103 символи. Як ти потрапив до 97?
Денкер

На жаль, моя помилка, я вважав їх неправильно.
користувач81655

4

C # (CSI) 181 180 179 байт

string i=" input == 1",e="public static bool";Console.Write(e+@"ean isPowerOfTen(long input) {
  return
   "+i+string.Join(@"L
  ||"+i,e.Select((_,x)=>new string('0',x)))+@"L;
}")

Є лише одна маленька хитрість. Прямим способом написати це було б:

string.Join("L\n  || input == 1",Enumerable.Range(0,18).Select(x=>new string('0',x)))

використовуючи рядок з першими 18 символами тексту, який мені в будь-якому разі потрібен, я можу позбутися від тривалого "Численного. Ранг". Це працює тому, що рядок реалізує IEnumerable і є версія Select, яка передає елемент (не потрібен) та індекс, який ми хочемо, щоб функція лямбда.


1
@WashingtonGuedes Thanks
raggy

1
add some explanation please
Eumel

1
Does CSI support expression bodies? If so, the { return ... } can be replaced by =>....
mınxomaτ

Not currently on computer so I can't test this. Does the last verbatim string escape the bracket inside it? Or is it a great trick that I didn't know of? :)
Yytsi

3

Javascript, 172 157 152 150 148 bytes

p=>`public static boolean isPowerOfTen(long input) {
  return${[...Array(19)].map((x,i)=>`
  ${i?'||':' '} input == 1${'0'.repeat(i)}L`).join``};
}`


2
In ES7 you can save 9 bytes by using ${10**i} instead of 1${'0'.repeat(i)}.
Neil

3

C, 158 155 bytes

i;main(){for(puts("public static boolean isPowerOfTen(long input) {\n  return");i<19;)printf("  %s input == 1%0.*dL%s\n",i++?"||":" ",i,0,i<18?"":";\n}");}

Try it online here.


You can shave off a byte if you use the return value of printf: i;main(){for(puts("public static boolean isPowerOfTen(long input) {\n return");printf(" %s input == 1%0.*dL%s\n",i++?"||":" ",i,0,i<18?"":";\n}")-37);}
algmyr

3

Jelly, 75 bytes

(These are bytes in Jelly's custom codepage.)

0r18⁵*;@€⁶j“¢œḤḅg^NrÞḢ⁷ẉ»“⁵®UẆƓḃÐL⁴ṖịṛFþẈ¹9}¶ ƁḋȮ¦sẒẆd€Ḟɼ¿ỌṀP^µ\f@»;;“L;¶}”

Try it here.

Explanation

0r18      Range [0..18]
⁵*        Take the 10^ of each number
;@€⁶      Prepend a space to each number
j“...»    Join by compressed string "L\n  || input =="
“...»;    Prepend compressed string "public static ... =="
;“L;¶}”   Append "L;\n}"

3

Vimscript, 120 bytes

Might as well use the right tool for the job.

This assumes that autoindent, etc have not been set. ^[ and ^M are escape characters for the ESC and CR characters respectively.

The a macro duplicates the current line and adds a 0 to the copy. The :norm line generates all the boilerplate and the indent == 1L line, then uses a to create the others.

:let @a='yyp$i0^['
:norm ipublic static boolean isPowerOfTen(long input) {^M  return^M  || input == 1L^[18@a$a;^M}
:3s/||/ /

In case the trailing spaces the sample output had on two lines weren't typos, here's a 126 byte version that includes them.

:let @a='yyp/L^Mi0^['
:norm ipublic static boolean isPowerOfTen(long input) {^M  return ^M  || input == 1L^[18@a$a;^M}   
:3s/||/ /

2

Oracle SQL 9.2, 311 bytes

SELECT REPLACE(REPLACE('public static boolean isPowerOfTen(long input) {'||CHR(10)||'  return'||c||';'||'}', 'n  ||', 'n'||CHR(10)||'   '),CHR(10)||';', ';'||CHR(10)) FROM(SELECT LEVEL l,SYS_CONNECT_BY_PATH('input == '||TO_CHAR(POWER(10,LEVEL-1))||'L'||CHR(10),'  || ')c FROM DUAL CONNECT BY LEVEL<20)WHERE l=19

2

Perl 5 - 130 141

@s=map{'input == 1'.0 x$_."L\n  ||"}0..18;$s[$#s]=~s/\n  \|\|/;\n}/g;print"public static boolean isPowerOfTen(long input){\n  return\n    @s"

EDIT: fixed to have exact indentation


No need to use parenthesis around the range. In change would be nice to reproduce the exact indentation.
manatwork

Thanks for the parenthesis that I forgot. I've fixed it to have the exact indentation.
ChatterOne

There is no need for the g flag for the substitution. Also as you have a single \n in that string, you can simply match it and everything after it: $s[$#s]=~s/\n.+/;\n}/. But a join based one would still be shorter: pastebin.com/hQ61Adt8
manatwork

Thank you, but I don't think it would be nice if I just copied and pasted your solution, so I'll just leave it as it is as my own best effort. In time, I'll get better at golfing :-)
ChatterOne

2

ES6, 139 bytes

_=>"0".repeat(19).replace(/./g,`
 || input == 1$\`L`).replace(`
 ||`,`public static boolean isPowerOfTen(long input) {
  return\n  `)+`;
}`

I do so love these triangle generation questions.


2

Kotlin, 194 193 characters

fun main(u:Array<String>){var o="public static boolean isPowerOfTen(long input) {\n\treturn"
var p:Long=1
for(k in 0..18){
o+="\n\t"
if(k>0)o+="||"
o+=" input == ${p}L"
p*=10
}
print("$o;\n}")}

Test it at http://try.kotlinlang.org/


Welcome to Programming Puzzles & Code Golf. Nice first answer, but please add a link to an online interpreter or add an example on how to run this program, so others can verify it. However, have a great time here! :)
Denker


2

jq, 123 characters

(121 characters code + 2 characters command line option.)

"public static boolean isPowerOfTen(long input) {
  return
   \([range(19)|" input == 1\("0"*.//"")L"]|join("
  ||"));
}"

Sample run:

bash-4.3$ jq -nr '"public static boolean isPowerOfTen(long input) {
>   return
>    \([range(19)|" input == 1\("0"*.//"")L"]|join("
>   ||"));
> }"'
public static boolean isPowerOfTen(long input) {
  return
    input == 1L
  || input == 10L
  || input == 100L
  || input == 1000L
  || input == 10000L
  || input == 100000L
  || input == 1000000L
  || input == 10000000L
  || input == 100000000L
  || input == 1000000000L
  || input == 10000000000L
  || input == 100000000000L
  || input == 1000000000000L
  || input == 10000000000000L
  || input == 100000000000000L
  || input == 1000000000000000L
  || input == 10000000000000000L
  || input == 100000000000000000L
  || input == 1000000000000000000L;
}

On-line test (Passing -r through URL is not supported – check Raw Output yourself.)


1

Javascript 175 bytes

Let's do this regularly

var s = "public static boolean isPowerOfTen(long input) {\n\treturn\n\t\tinput == 1";
for (var i = 1; i < 20; i++) {
    s += "\n\t|| input == 1";
    for (var j = 0; j < i; j++) {
        s += "0";
    }
    s += "L" ;
}
s += ";\n}";
alert(s);

Pretty small. Now, some javascript magic, like no semicolons needed, or no var's, etc.:

k="input == 1"
s="public static boolean isPowerOfTen(long input) {\n\treturn\n\t\t"+k+"L"
for(i=1;i<20;i++){s+="\n\t|| "+k
for(j=0;j<i;j++)s+="0";s+="L"}s+=";\n}"
alert(s)

Can you explain how that magic works? :)
Marv

3
Javascript doesn't care about semicolons, at least until the keywords (for, while, var, etc.) aren't "touching" anything else. Also, if you don't use the var keyword, you get global variables, wich is the worst feature I have ever seen in a programming language thus far.
Bálint

@Bálint. Why this would be the worst feature?
removed

@WashingtonGuedes You know, most languages remind you if you misstyped something inside a function. Because javascript takes that as if you made a whole new variable, it does not going to say anything about that.
Bálint

Also, same one applies to = returning a true.
Bálint

1

Python (3.5) 137 136 bytes

print("public static boolean isPowerOfTen(long input) {\n  return\n   ",'\n  || '.join("input == %rL"%10**i for i in range(19))+";\n}")

Previous version

print("public static boolean isPowerOfTen(long input) {\n  return\n   ",'\n  || '.join("input == 1"+"0"*i+"L"for i in range(19))+";\n}")

135 with Python 2.7: print "public static boolean isPowerOfTen(long input) {\n return\n %s;\n}"%"\n || ".join("input == %r"%10L**i for i in range(19))
moooeeeep

@moooeeeep you're right, the use of %r win 1 bytes and the python 2 print (without parenthesis ) win another one
Erwan

0

ANSI-SQL, 252 characters

WITH t as(SELECT '   'x,1 c,1 l UNION SELECT'  ||',c*10,l+1 FROM t WHERE l<19)SELECT 'public static boolean isPowerOfTen(long input) {'UNION ALL SELECT'  return 'UNION ALL SELECT x||' input == '||c||'L'||SUBSTR(';',1,l/19)FROM t UNION ALL SELECT'}   ';

Ungolfed:

WITH t as (SELECT '   ' x,1 c,1 l UNION
           SELECT '  ||',c*10,l+1 FROM t WHERE l<19)
SELECT 'public static boolean isPowerOfTen(long input) {' UNION ALL
SELECT '  return ' UNION ALL
SELECT x||' input == '||c||'L'||SUBSTR(';',1,l/19) FROM t UNION ALL
SELECT '}   ';

Not a serious attempt, just poking at the Oracle SQL/T-SQL entries.


For 40 additional chars I can add "from dual " and make it an "Oracle SQL" entry.
user1361991

0

JavaScript (Node.js), 156 bytes

s="public static boolean isPowerOfTen(long input) {\n  return "
for(i=1;i<1e19;i*=10)s+="\n  "+(i-1?"||":" ")+" input == "+i+"L"
console.log(s+";\n}   \n")

The i-1 will only be 0 (and thus falsey) on the very first round (it's just slightly shorter than i!=1.

Suggestions welcome!


0

Perl 5, 137 bytes

Not based on the previous Perl answer, but it is somehow shorter. I believe it can be shortened down again by taking care of the first "input" inside the loop, but I didn't try anything yet (at work atm)

$i="input";for(1..18){$b.="  || $i == 1"."0"x$_."L;\n"}print"public static boolean isPowerOfTen(long $i) {\n  return\n    $i == 1L;\n$b}"

0

CJam, 112 chars

"public static boolean isPowerOfTen(long input) {
  return
    input == 1"19,"0"a19*.*"L
  || input == 1"*"L;
}"

0

AWK+shell, 157 bytes

echo 18|awk '{s="input == 1";printf"public static boolean isPowerOfTen(long input) {\n return\n    "s"L";for(;I<$1;I++)printf"\n  ||%sL",s=s"0";print";\n}"}'

The question did say to count everything you would have to type. This does have the added bonus of being able to select how many lines would be placed in the isPowersOfTen method when the boss inevitably changes his mind.


Passing a here-string is shorter than piping from echo: awk '…'<<<18
manatwork

I knew about here-file but not here-string. Thanks for the info.
Robert Benson

0

T-SQL 289, 277, 250, 249 bytes

SELECT'public static boolean isPowerOfTen(long input){return '+STUFF((SELECT'||input=='+N+'L 'FROM(SELECT TOP 19 FORMAT(POWER(10.0,ROW_NUMBER()OVER(ORDER BY id)),'F0')N FROM syscolumns)A FOR XML PATH(''),TYPE).value('.','VARCHAR(MAX)'),1,2,'')+';}'

Update: Thanks @Bridge, I found a few more spaces too :)

Update2: Changed CTE to subquery -27 chars :) Update3: Another space bites the dust @bridge :)


1
I was able to trim off 7 more spaces (282 bytes) without changing the rest of the code: WITH A AS(SELECT CAST('1'AS VARCHAR(20))N UNION ALL SELECT CAST(CONCAT(N,'0')AS VARCHAR(20))FROM A WHERE LEN(N)<20)SELECT'public static boolean isPowerOfTen(long input){return '+STUFF((SELECT'|| input=='+N+'L 'FROM A FOR XML PATH(''),TYPE).value('.', 'VARCHAR(MAX)'), 1, 3, '')+';}'
Bridge

1
Now I look back I can see all the extra spaces in my original comment! I've found one more space you can get rid of - the one immediately after ROW_NUMBER()
Bridge

0

R, 185 bytes

Golfed

options(scipen=999);p=paste;cat(p("public static boolean isPowerOfTen(long input) {"," return",p(sapply(0:19,function(x)p(" input == ",10^x,"L",sep="")),collapse="\n ||"),"}",sep="\n"))

Ungolfed

options(scipen=999)
p=paste
cat(
  p("public static boolean isPowerOfTen(long input) {",
        " return",
        p(sapply(0:19,function(x)p(" input == ",10^x,"L",sep="")),collapse="\n ||"),
        "}",
        sep="\n")
)

0

Perl 6 (115 bytes)

say "public static boolean isPowerOfTen(long input) \{
  return
   {join "L
  ||",(" input == "X~(10 X**^19))}L;
}"

X operator does list cartesian product operation, for example 10 X** ^19 gives powers of ten (from 10 to the power of 0 to 19, as ^ is a range operator that counts from 0). Strings can have code blocks with { (which is why I escape the first instance of it).


0

Java, 210 / 166

Score is depending on whether returning the input from a function meets the definition of 'output'.

Console output (210):

class A{public static void main(String[]z){String a=" input == 1",t="L\n  ||"+a,s="public static boolean isPowerOfTen(long input) {\n  return\n   "+a;for(int i=0;++i<19;)s+=t+="0";System.out.print(s+"L;\n}");}}

String return (166):

String a(){String a=" input == 1",t="L\n  ||"+a,s="public static boolean isPowerOfTen(long input) {\n  return\n   "+a;for(int i=0;++i<19;)s+=t+="0";return s+"L;\n}";}

Legible version:

String a() {
    String a=" input == 1", t = "L\n  ||"+a,
        s = "public static boolean isPowerOfTen(long input) {\n  return\n   "+a;
    for (int i = 0; ++i < 19;)
        s += t += "0";
    return s + "L;\n}";
}

0

Batch, 230 208 206 205 bytes

@echo off
echo public static boolean isPowerOfTen(long input) {
echo   return
set m=input == 1
echo    %m%L
for /l %%a in (1,1,17)do call:a
call:a ;
echo }
exit/b
:a
set m=%m%0
echo  ^|^| %m%L%1

Edit: Saved 22 bytes by avoiding repeating input == and reusing the subroutine for the line with the extra semicolon. Saved 2 3 bytes by removing unnecessary spaces.


Do you need spaces around ==?
Pavel

@Pavel That's not code; it's part of the output.
Dennis
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.