Обчисліть квадрат і квадратний корінь!


48

Ви повинні зробити який виводить квадрат введення однією мовою та квадратний корінь введення на іншій. Найкоротша відповідь у байтах виграє!

Ви повинні мати точність принаймні до 3 знаків після коми, і вхід завжди буде позитивним промінням.

Відповіді:



90

C і C ++, 68 65 байт

#include<math.h>
float f(float n){auto p=.5;return pow(n,2-p*3);}

Оригінальна відповідь:

#include<math.h>
float f(float n){return pow(n,sizeof('-')-1?2:.5);}

Для обох версій C виробляє n^2і C ++ виробляє sqrt(n).


23
+1 як "Ha!" для всіх тих, хто ставиться до C і C ++ як до одного і того ж.
DocMax

20
@ CAD97: В C autoозначає "виділити на стек". Ключове слово досить марно, оскільки це все одно за замовчуванням, тому C ++ змінив його на щось інше. Однак у C він не висловлює жодної думки щодо типу p(це клас зберігання, а не тип), тому він вважається intза замовчуванням (така intповедінка за замовчуванням відтепер відвертається і, ймовірно, існує лише тому, що деякі попередники C взагалі не мали типів даних, але компілятори все-таки це розуміють). І звичайно, (int)0.5це 0.

2
Це геніально.
Квентін


9
Я думаю, що пояснення цієї відповіді було б вдосконалено, відредагувавши коментар @ ais523, що пояснює, чому C виробляє n^2.
Брайан Дж

50

Python 2 & Python 3, 23 21 байт

lambda n:n**(1/2or 2)

Python 2.x виробляє n^2, Python 3.x виробляє sqrt(n).

2 байти збережено завдяки @Dennis!


це так круто!
njzk2

Чому? Це нестача місця раніше or?
chx

@chx У Py2 /робить ціле ділення ( 1/2==0). У Py3 він робить поділ з плаваючою комою ( 1/2==0.5)... 0- фальси.
Нік Хартлі.

то чому б не прибрати пробіл після або?
chx

@chx Спробуйте самі. Якщо це зробити, він видає синтаксичну помилку.
numbermaniac

32

2 придатних / желе , 2 байти

*.

2 придатних обчислення площі. Спробуйте в Інтернеті!

Желе обчислює квадратний корінь. Спробуйте в Інтернеті!

Як це працює

2 користування

*   Read the input twice and compute the product of both copies.
    This pushes the square of the input.
 .  Unrecognized token (ignored).

Желе

 .  Numeric literal; yield 0.5.
*   Raise the input to the power 0.5.
    This yields the square root.

7
Наче ці мови були створені саме для цього виклику
FloatingRock

20

C (кланг) та Python , 109 107 69 53 байт

#/*
lambda n:n**.5;'''*/
float a(i){return i*i;}//'''

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

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

Працює за допомогою коментарів до поліглоту. Решта досить пояснювальна.

Перше використання C!

  • Збережено досить багато байтів завдяки @Riker.
  • Збережено 2 байти, видаливши зайвий пробіл.
  • Збережено дуже багато байтів за допомогою функції для C замість STDIN / OUT.
  • Збережено 16 байт завдяки @Delioth, видаливши оператор імпорту вгорі.

@Riker Зробимо, дякую.
Товариш SparklePony

Я вважаю, що ви можете видалити один новий рядок після коментаря C (рядок 2, останній символ), оскільки C не потребує пробілу, і це вже буквальна рядок для python. Оскільки ви не повертаєте жодного спеціального коду, ви можете опустити його return 0;з кінця - C99 містить неявне повернення 0 main(). Джерело
Delioth

@Delioth Насправді було більше сенсу просто використовувати цю функцію та викреслити io.
Товариш SparklePony

О так, набагато краще. Вам навіть потрібно включити stdio.hдо цього випадку?
Delioth

@ Деліот я не хочу. Ого!
Товариш SparklePony

16

Ом і Желе , 3 байти

Виводить квадрат в Омі, квадратний корінь в Желе.

Ом і Джеллі використовують різні однобайтові кодові сторінки, тому програма буде відображатися по-різному в кожному кодуванні.

xxd hexdump програми:

00000000: fd7f 0a                                  ...

Желе

Використовуючи кодову сторінку Jelly, це виглядає так:

’
½

Jelly приймає нижній рядок як його основне посилання та ігнорує інші посилання, якщо спеціально не називається. Тож тут він просто виконує квадратний корінь ( ½) і неявно виводить його.

Ом

Використовуючи кодову сторінку Ома (CP437), вона виглядає так:

²⌂◙

²є квадратом функція, і обидва НЕ визначені, тому програма просто квадрати неявно читання вхідних і неявно виводить його.


Приємно! Кількість байтів добре.
програміст5000

Я відредагував свою відповідь на 5 байтів через це, і це добре вловлює.
Чарівний восьминіг Урна

О, перша відповідь Ома не написана мною! Молодці!
Нік Кліффорд

Якщо ви використовуєте кодову сторінку Jelly, щоб отримати ½байт, що означає ²карта? Це просто сміття, яке досі ігнорується? І навпаки для Ома? Тоді, здавалося б, це 2 байти.
AdmBorkBork

1
Я складу приклад, оскільки не хочу заважати шукати фактичні кодові точки. Припустимо, що ²в Омі знаходиться в кодовому пункті 5. Код пункту 5 в Jelly є %і нічого не робить, тому не має значення, що таке перший рядок. Припустимо, що ½в Jelly знаходиться в 27, а кодова точка 27 в Омі є Jі нічого не робить, тому не має значення, що таке другий рядок. Таким чином, якщо у вас є файл 00000101<newline>00011011, це 3 байти. Я думаю, що єдиною проблемою є те, якщо новий рядок знаходиться в іншому місці на сторінках коду.
AdmBorkBork

15

C89 і C99, 47 + 3 = 50 байт

float f(float n){return n//*
/sqrt(n)//*/1*n
;}

Потрібен -lmпрапор (+3)

C89 виробляє n^2, C99 виробляє sqrt(n). Для тестування на C89 спробуйте в Інтернеті!


Змушення C89 робити sqrtверсію повинно брати менше коду, але воно наполягає на неявному оголошенні sqrtфункції за допомогою ints, тому це найкраще, що я міг керувати.


13

Октава / MATLAB, 31 29 байт

 @(x)x^(2-3*any(version>60)/2)

Це виводить квадрат в Октаві та квадратний корінь у MATLAB.

Пояснення:

Звичайно, синтаксис є однаковим у MATLAB та Octave (принаймні для цього невеликого фрагмента коду).

Це створює анонімну функцію:

@(x)                                 % Take x as input
    x^(                     )        % Raise x to the power of ...   
               version                 % Returns the version number
                                       % 4.2.0 in Octave, 
                                       % '9.2.0.538062 (R2017a)' in MATLAB
               version>60              % 'R' is larger than 60. All others are smaller
         3*any(version>60)/2           % Checks if there is an 'R' and multiplies it by 1.5 if it is.
       2-3*any(version>60)           % 2-1.5*(is there an 'R')

12

Основні / Delphi - 6 символів

sqr(x)

Квадратний корінь у Basic та квадратний у Delphi.

Ви можете використовувати налагоджувач для перевірки виразу, тим самим виконуючи будь-які вихідні вимоги!


2
Чи приймає це сам вклад?
Rɪᴋᴇʀ

Ні, але також не виконуються інші подання, включаючи C / C ++.

Досі недійсний, але це нічого не змінює. Я спробую також прокоментувати їх.
Rɪᴋᴇʀ

1
Чи можете ви зв’язати будь-яке, що не робить? Я не можу знайти жодного. C / C ++ є функцією, не приймає введення, замість цього параметра.
Rɪᴋᴇʀ

3
Так, але що таке x? Ви не можете припустити, що він збережений до значення. Але ви насправді зможете видалити (x)та позначити як повернення функції.
Rɪᴋᴇʀ

11

05AB1E / Fireball , 3 байти

Наступні байти складають програму:

FD B9 74

05AB1E обчислює квадратний корінь, квадрати Fireball.

Пояснення (05AB1E - ý¹t):

ý       Pushes an empty string to the stack (not entirely sure why)
 ¹      Push first input
  t     Square root

Пояснення (Fireball - ²╣t):

²       Square input
 ╣      Unassigned
  t     Unassigned

Іноді допомагає мати неповну мову;)


1
05AB1E та Fireball використовують різні кодування. Це впливає на програми?
Денніс

@Dennis Я не думав про це. Отже, збереження однієї програми в різних кодуваннях не вважається поліготами?
Оккс

5
Afaik, типовим є те, що потоки байтів повинні відповідати.
Денніс

10

PHP7 + JavaScript, 62 61 58 байт

Це було насправді складніше, ніж я очікував! Я дуже здивований, як довго мій код.

eval(['alert((_=prompt())*_)','echo$argv[1]**.5'][+![]]);


Як це працює?

Це працює, вибравши код для запуску з масиву.
Виявлення PHP та JavaScript проводиться за допомогою +![].

У PHP [](порожній масив) - хибне значення, тоді як у JavaScript це truthy значення (об'єкти (крім null) завжди є truthy, навіть new Boolean(false)є truthy!).
Але мені потрібно отримати це числове значення, тому я просто використовую not( !) і конвертую його в ціле (з символом +).
Тепер PHP дає значення 1, тоді як JavaScript поступається 0.
Розміщення коду всередині масиву, в цих індексах, дозволить нам вибрати правильний код для потрібної мови.
Це можна використовувати як [JS,PHP][+![]], щоб отримати код потрібної мови.

У попередніх поліглотах я використовував '\0'=="\0", що знаходиться trueв JavaScript (оскільки \0аналізується як NULL-байт) і falsePHP (значення '\0'не буде розбиратися як NULL-байт, порівнюючи буквальний рядок \0з NULL-байтом).
Я щасливий, що мені вдалося скоротити цю перевірку +!'0'.
Я ще більше радий @rckd , який зменшив його до поточної версії!

З цього evalмоменту це просто необхідний код.

PHP

PHP виконає echo$argv[1]**.5(еквівалентно echo sqrt($argv[1]);номеру з квадратним коренем), отримавши значення з 2-го аргументу та відобразивши його у стандартному висновку.

JavaScript

Виконує JavaScript alert((_=prompt())*_), який відображає число у квадраті alert.



Дякуємо @rckd за збереження 1 байта, а @ user59178 за збереження 3 байтів!


1
! [] врятує вас 1 байт :-)
rckd

1
@rckd Свята корова! Повністю забув про порожні масиви. Дякую! Я змінив питання, пояснивши, як воно працює.
Ісмаель Мігель

1
ви можете зберегти 3 байти, скориставшись, echo$argv[1]**.5а неecho sqrt($argv[1])
user59178

Нічого, приємна економія! Дякую! Я додав це у відповідь.
Ісмаїл Мігель

8

05AB1E і Jelly , 4 байти

nqƓ½

(05AB1E) - (желе)

nq   # Ignored by Jelly, push n**2 in 05AB1E then quit.
  Ɠ½ # Ignored by 05AB1E due to quit, push sqroot of input in Jelly.

Якийсь інший зробив добру думку, я думаю, оскільки символи UTF-8 не ділять однакову операцію на сторінках коду, які технічно мають 2-байт для кодування. Однак, дивлячись на це з точки зору шістнадцяткового дампа:

6e 71 93 0a

У CP1252 кодування 05AB1E це призводить до:

nq“\n

Це означає, що він все одно виведе квадрат і вийде, ігноруючи решту. Коли ці байти кодуються за допомогою кодової сторінки Jelly:

nqƓ½

Який оригінал призначеного коду, коли виконується, призводить до бажаного результату прийому введення та прийняття sqrt.


2
Це фактично 6 байт в UTF-8, оскільки обидва Ɠі ½вимагають кодування двох байтів. Однак послідовність байтів 6e 71 93 0a( nqƓ½для Jelly, nq“\nдля CP-1252) повинна працювати на обох мовах.
Денніс

@ Денніс, що ½знаходиться на обох кодових сторінках, не дозволяє вважати його єдиним, тому що я вважаю, що це різні операції? Я все ще нечіткий на всій сторінці кодової сторінки.
Чарівний восьминіг Урна

1
Підрахунок байтів означає підрахунок потоків байтів. Якщо інтерпретатор насправді не підтримує кодування деяких символів на одній кодовій сторінці та інших символів в іншій, ми не можемо зробити це для оцінки балів.
Денніс

4
@carusocomputing ваше представлення - це 4 байти, 6e 71 93 0aтому немає "теоретично" щодо претензій на 4 байти. Просто вимагайте 4 байти. Так буває, що в стандартному кодуванні 05AB1E він читає одне, що робить те, що ти хочеш, а в стандартному кодуванні Jelly читає інше, що робить те, що ти хочеш. Що стосується того, що 2 кодування можуть кодувати один і той же символ, це не означає, що символ буде однаковим у обох. Просто подумайте про кодування, як цифровий код із таблицею пошуку, яка вже поділена, і, сподіваємось, це дасть вам гарну стартову ментальну модель.
Дейв

@Dave Я, мабуть, тоді неправильно трактував Денніса.
Чарівний восьминога Урна

6

CJam / MATL , 8 байт

ld_*GX^!

Обчислює квадрат у CJam ( Спробуйте в Інтернеті! ) Та квадратний корінь у MATL ( Спробуйте в Інтернеті! ).

Пояснення квадрата в CJam

ld    e# Read input line and interpret as a double
_     e# Duplicate
*     e# Multiply. Pops the input number twice, pushes its square
G     e# Push 16
X     e# Push 1
^     e# Bitwise XOR. Pops 16 and 1, and pushes 17
!     e# Negate. Pops 17, pushes 0
      e# Implicitly display. This prints the squared input with decimals,
      e# immediately followed by the 0 coming from the negate operation
      e# Even if the square of the input number is an integer, say 5,
      e# it is displayed as 5.0, so including an extra 0 always gives a
      e# correct result

Пояснення квадратного кореня в MATL

l      % Push 1. This is a number or equivalently a 1×1 array
d      % Consecutive differences. Pops 1, pushes [] (empty array)
_      % Negate (element-wise). This leaves [] as is
*      % Implicitly input a number and push it. Multiply (element-wise): 
       % pops [] and the input number, pushes []
G      % Push input number again
X^     % Square root. Pops number, pushes its square root
!      % Transpose. For a number (1×1 array) this does nothing
       % Implicitly display. The stack contains [] and the result; but 
       % [] is not displayed at all

Гей! Приємного подання! Хочете додати пояснення, як інші відповіді?
програміст5000

@ programmer5000 Я виправив помилку і додав пояснення
Луїс Мендо

5

Python 2 і Forth, 43 33 байти

( """ )
fsqrt
\ """);lambda n:n*n

Спробуйте в Інтернеті: Python 2 (квадрат) | Четвертий (sqrt)

Це оцінює анонімну функцію в Python та вбудовану функцію fsqrtу Forth. Python може мати названу функцію fна 2 байти більше, поставивши f=перед лямбда.

Програма Forth приймає буквар з плаваючою комою , який у Forth повинен бути записаний у науковій нотації. Pi, усічений до 3 знаків після коми ( 3.141), буде записаний так:

3141e-3

5

JavaScript (ES6) / JavaScript (ES7), 52 байти

f=a=>eval(`try{eval("a**2")}catch(e){Math.sqrt(a)}`)

Повертає квадрат введення в ES7 і квадратний корінь в ES6. Досить складно перевірити, якщо у вас немає старшого браузера, який підтримує ES6, але не ES7.

f=a=>eval(`try{eval("a**2")}catch(e){Math.sqrt(a)}`)

console.log(f(4));


Розумний! Приємна робота на цьому!
програміст5000

Чи є причина в задньому плані? Здається, що окремі цитати справили б цю роботу.
JLRishe

@JLRishe Nope, без причин :)
Том

5

PHP і CJam , 30 29 25 байт

ECHO"$argv[1]"**2;#];rdmq

Обчислює квадрат у PHP та квадратний корінь у CJam. Потрібно запустити за допомогою -rPHP.

PHP

Підвищує перший аргумент командного рядка ( $argv[1]) до потужності 2 та виводить його. Тут $argv[1]насправді ставиться як вбудована змінна рядок, яка передається до числа, перш ніж робити експоненцію. Це тому v, що не є дійсною інструкцією в CJam і призведе до помилки під час розбору, але введення її в рядок не спричинить жодних проблем.

# починає коментар, тому все після цього ігнорується.

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

CJam

Перша частина коду ECHO"$argv[1]"**2;#підштовхує купу значень і виконує купу операцій, усі вони є марними. Важливо лише те, що вони не викликають жодних помилок, тому що одразу після цього є ];, який загортає весь стек у масив, а потім відкидає його.

Після цього він зчитує дубль з input ( rd) і отримує його квадратний корінь ( mq) і неявно виводить його.

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


5

C, Мова сценарію Flashpoint , 52 байти

;float f(float x){return sqrt(x);}char*
F="_this^2";

У сценарії OFP крапка з комою на початку рядка робить цей рядок коментарем, тоді як C не хвилює додаткову крапку з комою.

C:

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

Мова сценаріїв OFP:

Збережіть як init.sqsу папці місії, а потім зателефонуйте за допомогою hint format["%1", 2 call F].

Результат: введіть тут опис зображення


Гаразд, це досить круто. Як ви думали скористатися цим скриптовим язиком?
Rɪᴋᴇʀ

@Riker Operation Flashpoint завжди була однією з моїх улюблених ігор; Раніше я багато робив у ньому мовою сценаріїв.
Steadybox


3

> <> / Jelly , 9 байт (7 байт-код + 2 для прапора '-v' в> <>)

Людина, мені дуже цікаво зі структурою зв'язку Jelly.

:*n;
½

Обчислює квадрат у> <> , а корінь квадрата в желе .


Чи дозволено вам також не використовувати -v в желе?
Rɪᴋᴇʀ

На -vмоє використання , на мою думку, відповідає [відповідь, що голосує [( codegolf.meta.stackexchange.com/a/11431/44874 ) на мета-запитання, що обробляє цей випадок. ><>Перекладач потребує в цьому , -vі це є для них найбільш простого виклику.
steenbergh

3

Python 3 + JavaScript, 101 байт

0//1or exec("function=lambda a:(lambda b:a);x=0")
y=2//2/2
f=(function(x)(x**y))//1 or(lambda x:x**y)

Квадратний корінь у JS, квадратний у Python.

Працює на Firefox (тестується на FF 52) і вимагає (function(x) x)(42) === 42дійсного синтаксису. Також потрібен ES7 для **оператора.


Тестується на Firefox і він працює. Чи можна використовувати x=>x**yзамість цього? Або Python буде задихатися від цього?
Ісмаїл Мігель

@IsmaelMiguel python не підтримує функцію стрілок.
Rɪᴋᴇʀ

Це не працює для python. Функція - це не ключове слово.
Rɪᴋᴇʀ

Це справді працює. Оскільки functionце не ключове слово, це дійсний ідентифікатор. Тому я просто призначив функцію noop для неї (всередині execвиписки).
kjaquier

3

bash і sh, 48 байт

Оновлення: я повинен визнати поразку. Відповідь цифрової травми "баш-ш" відповідь набагато більш елегантна, ніж ця.


bc -l<<<"sqrt($1^(($(kill -l|wc -l)*3-3)/7+1))"

bash виробляє n^2, sh виробляє sqrt(n).


bcпотрібен лише для того, щоб sqrtможна було обчислити. Різниця в поведінці між баш і ш.

Гаразд, технічно "sh", який я використовую, все ще є bash, але баш в режимі "POSIX" (що відбувається, якщо ви посилаєтеся /bin/shзамість /bin/bashсистем, де /bin/shпсевдонім для bash). Якщо це так у вашій системі, ви можете протестувати за допомогою:

/bin/bash prog.sh 4
/bin/sh prog.sh 4

Це ґрунтується на одній із розбіжностей, пояснених тут: https://www.gnu.org/software/bash/manual/html_node/Bash-POSIX-Mode.html


1
Як це працює?
Брайан Мінтон

2
@BrianMinton Спробуйте запустити kill -l(перераховує можливі сигнали; нічого не змінюється) у bashта sh. Це одна з багатьох відмінностей, яку ви можете знайти тут: gnu.org/software/bash/manual/html_node/Bash-POSIX-Mode.html
Дейв,

3

QBIC / QBasic, 26 18 байт

input a
?a^2'^.25

У QBasic воно займає число і друкує це число у квадраті. Решта коду ігнорується, оскільки QBasic сприймає це як коментар ( ').

QBIC використовує те саме вхідне твердження. Потім він продовжував друкувати ту саму цифру в квадраті, потім піднімався до потужності чверті, ефективно вкорінюючи її вдвічі. Це тому ', що розглядається як буквальний код: Чистий код QBasic, який не розбирається QBIC.


2

Желе / Піп , 6 байт

EDIT: Це байт коротший для операцій зворотного зв’язку.

RTa
²

Спробуйте Jelly онлайн!

Jelly запускає виконання внизу коду (його "головне посилання") і бачить, чи потрібно щось вище: він бачить команду на квадрат і піклується про введення та виведення неявно.

Спробуйте Піп онлайн!

Pip виконує верхній рядок, відсікаючи (неявно прочитане з рядка cmd) var a і неявно друкує це. Підсумок ігнорується.


Альтернатива 6-byter: PRTaVS.
steenbergh

2

Мова Wolfram / PHP , 25 байт

Отримайте квадрат числа в Wolfram Language і отримайте квадратний корінь в PHP;

n^2
echo sqrt(_GET["n"]);

Перший рядок - мова Wolfram. По-перше, ви повинні змінити n на панелі пошуку в Wolfram Alpha, тому код також є вхідним. Тоді він генерує відповідь після натискання клавіші enter

n^2

Другий рядок - PHP, він отримує квадратний корінь n, який слід вводити в адресний рядок (наприклад, ppcg.php.net?n=213, де 213 - значення n)

echo sqrt($_GET["n"]);

1
Ласкаво просимо до PPCG! Однак ви повинні якось взяти участь. Ви не можете припустити, що число зберігається у змінній. Вибач за те. Перелік прийнятних методів вводу-виводу можна переглянути тут. (позитивні оцінки у відповідях означають, що це дозволено, негативні засоби не дозволені)
Rɪᴋᴇʀ

Зрозумів. Я просто відредагую свою відповідь. :) Інша справа, я просто поясню, чому додавання іншого коду для введення в wolfram не застосовується.
Jimwel Anobong

Раді допомогти! Сподіваюсь, ви дотримуєтесь у ppcg!
Rɪᴋᴇʀ


1
Мова Вольфрама заснована на математиці, яка потребує введення математичної формули неприродним чином. Інша річ, відповідач це вичищає, його веб-сайт, який є не мовою, а мовою вовка, є мовою, яка його підтримує. Мова Wolfrsm та WolframAlpha пов'язані з кожним з них, але не однаково. Вони зовсім інші.
Jimwel Anobong

2

PHP 5.6 і PHP 7, 55 байт

function f($n){list($a[],$a[])=[.5,2];echo $n**$a[0];}

PHP 5.6 виробляє n^2, PHP 7 виробляє sqrt(n).


2

macOS Bash і sh, 24 байти

p=^4 :
bc<<<"sqrt($1)$p"

На Mac, shце bashпрацює в режимі Posix, і в цьому випадку , як в https://www.gnu.org/software/bash/manual/html_node/Bash-POSIX-Mode.html :

Виписки про призначення, що передують спеціальним вбудованим POSIX, зберігаються в середовищі оболонки після завершення вбудованого

Таким чином, для shзмінної pє значення ^4після :запуску, але для bash, змінна pмає це значення лише під час :запуску, а потім порожнє.

Будучи все-таки справді bashпід прикриттями, деякі башизми, такі як <<<ерестінг, як і раніше працюють як для випадків, так і для баш.


Баш і тире (і утиліти GNU), 27

У Ubuntu 16.01 sh- це симпосилання на dash, що не робить <<<герест. Отже, у нас це є:

p=^4 :
echo "sqrt($1)$p"|bc

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


Гарне використання іншого режиму / env!
програміст5000

Це набагато краще, ніж моя версія!
Дейв

1

Октава / Кардинал , 28 байт

Ця програма накреслює вхід в Cardinal і отримує квадратний корінь в Octave

 %:=t.
disp(sqrt(input("")))

Спробуйте в Інтернеті! (Октава)

Спробуйте в Інтернеті! (Кардинал)

Отже,% - це однорядковий коментар в Octave, тому він просто отримує введення та друкує квадратний корінь

disp(sqrt(input("")))

Так що програма «Кардинал» не стикається з помилкою поділу на 0 і помирає, програма

%:=t.

зміщено пробіл, який ігноруються обома програмами

Пояснення програми Кардинала:

Програма починається з%
Отримує вхід і зберігає значення як активне:
Встановлює неактивне на рівне активним =
Помножує активне на неактивне t
Нарешті воно виводить активне значення.


1

PHP / JavaScript, 43 байти

<body onload=alert(<?=$x*$x.')>'.sqrt($x)?>

Введення йде так:

<?php $x = 10; ?>

Своєрідне роз'яснення, але чи відповідає це правилам? Мій перший код для гольфу :-)


1
Ласкаво просимо до коду гольфу! Вхід повинен бути поплавком або рядком, який є лише поплавком. Якщо я правильно розумію, для цього потрібне окреме введення.
програміст5000

Ви впевнені, що це працює як JavaScript? Схоже, обидві версії потребують етапу обробки PHP (JavaScript не знає, що з цим робити alert(<?=$x*$x.')>'.sqrt($x)?)
Дейв,

0

CGL (Мова гольфу CGL) / JS (ES6), 13 байт (неконкуренто)

Без конкуренції, оскільки:

  1. CGL був звільнений після цього запитання.
  2. CGL не є дійсною мовою . Через і , CGL технічно є дійсною мовою.

Код:

 x=>x**2
//-₂

JS:

Просте: функція анонімної стрілки, яка повертає перший аргумент у квадрат. Неназваний код мови коментується.

CGL:

Нерозривні простір перед першим рядком діє як коментар. В /s немає-OPS. -У другому засобі лінії для зменшення поточного номера стека, який за замовчуванням дорівнює 0. потім встановлює його в -1, де вхід зберігається. Замінює перший елемент в поточному стеку з його квадратним коренем, який тепер , коли вхід поміщений. За замовчуванням виводиться поточний стек, виводячи квадратний корінь вводу.


Це 13 байт. Я не знаю про CGL, але я досить впевнений, що JS використовує ascii / utf-8. CGL, ймовірно, також використовує UTF-8, якщо у нього немає власної кодової сторінки.
Rɪᴋᴇʀ

@Riker наразі використовує ascii / utf-8. Дякую.
програміст5000
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.