Рассчитайте квадрат и квадратный корень!


48

Вы должны создать который выводит квадрат ввода на одном языке и квадратный корень ввода на другом. Самый короткий ответ в байтах побеждает!

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

Ответы:


45

Jolf и MATL , 1 байт

U

Квадратный корень в Jolf, квадрат в MATL.

Попробуйте онлайн! (MATL)

Попробуйте код Джольфа. Работает только на Firefox.

Оба они имеют размер 1 байт, поскольку MATL и Jolf используют кодовые страницы ASCII / расширенный ASCII, поэтому все команды имеют размер 1 байт.


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 как "Ха!" для всех тех людей, которые рассматривают C и C ++ как одно и то же.
DocMax

20
@ CAD97: в C autoозначает «выделить в стеке». Ключевое слово довольно бесполезно, потому что это так или иначе по умолчанию, поэтому C ++ изменило его значение на другое. В C, однако, он не выражает никакого мнения о типе p(это класс хранения, а не тип), поэтому он считается intпо умолчанию (это intповедение по умолчанию не рекомендуется в настоящее время, и, вероятно, существует только потому, что некоторые из предшественников Си вообще не имели типов данных, но компиляторы все еще понимают это). И, конечно, (int)0.50.

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 байта

*.

2sable вычисляет квадрат. Попробуйте онлайн!

Желе вычисляет квадратный корень. Попробуйте онлайн!

Как это устроено

2sable

*   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: Попробуйте онлайн!

Python: Попробуйте онлайн!

Работает с помощью комментариев к полиглоту. Остальное довольно объяснительно.

Впервые с помощью C!

  • Благодаря @Riker удалось сэкономить несколько байтов.
  • Сохранено 2 байта путем удаления ненужных пробелов.
  • Сохранено очень много байтов, используя функцию для C вместо STDIN / OUT.
  • Благодаря @Delioth удалось сэкономить 16 байт, удалив оператор импорта в верхней части.

@Riker Подойдет, спасибо.
Товарищ SparklePony

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

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

Ах да, намного лучше. Вам даже нужно включить stdio.hв этом случае?
Делиот

@ Делиот, нет. Упс!
Товарищ SparklePony

16

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

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

Ohm и Jelly используют разные однобайтовые кодовые страницы, поэтому программа будет выглядеть по-разному в каждой кодировке.

xxd hexdump программы:

00000000: fd7f 0a                                  ...

Желе

Используя кодовую страницу желе, это выглядит так:

’
½

Jelly выбирает самую нижнюю строку своей основной ссылки и игнорирует другие ссылки, если не указано иное. Так что здесь он просто делает квадратный корень ( ½) и неявно выводит его.

ом

Используя кодовую страницу Ома (CP437), это выглядит так:

²⌂◙

²является квадратом функция, и оба не определены, поэтому программа просто квадраты неявно чтения входных и неявно выводит его.


Приятно! Количество байтов в порядке.
programmer5000

Я отредактировал свой ответ до 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)

С89 производит n^2, С99 производит sqrt(n). Чтобы проверить в C89, попробуйте онлайн!


Чтобы заставить C89 делать sqrtверсию, нужно меньше кода, но она настаивает на неявном объявлении sqrtфункции с ints, так что это лучшее, что я мог бы сделать.


13

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

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

Это выводит квадрат в Octave и квадратный корень в 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

Basic / Delphi - 6 символов

sqr(x)

Квадратный корень в Basic и квадратный в Delphi.

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


2
Это сам по себе?
Rɪᴋᴇʀ

Нет, но и некоторые другие материалы, в том числе C / C ++, отсутствуют.

Все еще недействительный, хотя, это ничего не меняет. Я постараюсь прокомментировать эти тоже.
Rɪᴋᴇʀ

1
Можете ли вы связать что-нибудь, что нет? Я не могу найти ни одного. C / C ++ one - это функция, которая не принимает входные данные, а является параметром.
Rɪᴋᴇʀ

3
Да, а что есть x? Вы не можете предполагать, что это сохранено к значению. Но вы можете удалить (x)и пометить ее как возвращающую функцию.
Rɪᴋᴇʀ

11

05AB1E / Огненный шар , 3 байта

Следующие байты составляют программу:

FD B9 74

05AB1E вычисляет квадратный корень, квадраты огненного шара.

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

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

Пояснение (Огненный шар - ²╣t):

²       Square input
 ╣      Unassigned
  t     Unassigned

Иногда помогает иметь неполный язык;)


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

@ Денис, я не думал об этом. Таким образом, сохранение одной и той же программы в разных кодировках не считается для полиготов?
Okx

5
Afaik, по умолчанию потоки байтов должны совпадать.
Деннис

10

PHP7 + JavaScript, 62 61 58 байт

Это было на самом деле сложнее, чем я ожидал! Я очень удивлен тем, как долго мой код.

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


Как это работает?

Это работает путем выбора кода для запуска из массива.
Обнаружение PHP и JavaScript производится с помощью +![].

В PHP [](пустой массив) является ложным значением, в то время как в JavaScript это истинное значение (объекты (кроме null) всегда являются правдивыми, даже new Boolean(false)правдивыми!).
Но мне нужно получить его в числовое значение, поэтому я просто использую not( !) и преобразую его в целое число (с помощью +).
Теперь, PHP дает значение 1, в то время как дает JavaScript 0.
Размещение кода внутри массива с такими индексами позволит нам выбрать правильный код для нужного языка.
Это можно использовать как[JS,PHP][+![]] для получения кода на нужном языке.

В предыдущих полиглотах, которые я использовал '\0'=="\0", trueв JavaScript (поскольку \0он анализируется как NULL-байт) и falseв PHP ( '\0'он не будет анализироваться как NULL-байт, сравнивая буквенную строку \0с NULL-байтом).
Я счастлив, что мне удалось сократить этот чек до +!'0'.
Я еще более доволен @rckd , который сократил его до текущей версии!

С этого evalмомента , это просто необходимый код.

PHP

PHP выполнится echo$argv[1]**.5(эквивалентно echo sqrt($argv[1]);квадратному корню из числа), получит значение из второго аргумента и отобразит его в стандартном выводе.

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

В кодировке 05AB1E CP1252 это приводит к:

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 кодировки могут кодировать один и тот же символ, не означает, что этот символ будет одинаковым в обоих из них. Подумайте о кодировках, подобных числовому шифру с уже найденной таблицей поиска, и, надеюсь, это даст вам хорошую начальную ментальную модель.
Дейв

@ Дэйв, должно быть, я тогда неправильно понял Денниса.
Волшебная Урна Осьминога

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

Привет! Хорошая подача! Хотите добавить объяснение, как и другие ответы?
programmer5000

@ programmer5000 Я исправил ошибку и добавил пояснения
Луис Мендо

5

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

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

Попробуйте онлайн: Python 2 (квадрат) | Forth (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));


Умная! Хорошая работа на этом!
programmer5000

Есть ли причина для клеветы? Похоже, одинарные кавычки сделали бы эту работу.
JLRishe

@JLRishe Нет, нет причин :)
Том

5

PHP и CJam , 30 29 25 байт

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

Вычисляет квадрат в PHP и квадратный корень в CJam. Должен быть запущен с использованием -rв PHP.

PHP

Возводит первый аргумент командной строки ( $argv[1]) в степень 2 и выводит его. Здесь $argv[1]фактически вставляется как строковая переменная в строке, которая приводится к числу перед выполнением возведения в степень. Это потому чтоv не является допустимой инструкцией в CJam и приведет к ошибке при синтаксическом анализе, но размещение ее в строке не вызовет никаких проблем.

# начинает комментарий, поэтому все после игнорируется.

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

CJam

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

После этого он читает double из 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 Flashpoint всегда была одной из моих любимых игр; Я имел обыкновение делать много вещей с его языком сценариев.
Steadybox

3

Reticular / Befunge-98 , 15 байтов

2D языки!

/&:*.@
>in:o#p;

Befunge-98

/&:*.@

/          divide top two (no-op)
 &         read decimal input
  :        duplicate
   *       square
    .      output
     @     terminate

ретикулярный

/           mirror up, then right
>in:o#p;

 i          read line of input
  n         cast to number
   :o#      square root
      p     print
       ;    terminate

3

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

Чувак, мне действительно весело со структурой ссылок Jelly.

:*n;
½

Вычисляет квадрат в> <> и квадратный корень в желе .


Вам разрешено не использовать -v в желе тоже?
Rɪᴋᴇʀ

Использование -v, по моему мнению, согласуется с ответом [ top -oted [[ codegolf.meta.stackexchange.com/a/11431/44874 ]] для мета-запроса, обрабатывающего этот случай. Это ><>нужно переводчику, -vи это для него самый простой вызов.
Стинберг

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

Баш и Ш, 48 байт

Обновление: я должен признать поражение. Ответ bash / sh от Digital Trauma гораздо элегантнее, чем этот.


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

Баш производит n^2, ш производит sqrt(n).


bcнужно только так, чтобы sqrtможно было рассчитать. Разница в поведении между bash и sh.

Хорошо, технически "sh", который я использую, все еще bash, но 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 байт

РЕДАКТИРОВАТЬ: Это на байт короче, чтобы изменить операции.

RTa
²

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

Jelly начинает выполнение в нижней части кода (его «главная ссылка») и видит, нужно ли ему что-то более высокое: он видит команду на квадрат и неявно заботится о вводе и выводе.

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

Pip выполняет верхнюю строку, возводя в квадрат (неявно считанные из строки cmd) переменную a a и неявно печатает ее. Нижняя строка игнорируется.


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

2

Wolfram Language / PHP , 25 байт

Получить квадрат числа в Wolfram Language и получить квадратный корень в PHP;

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

Первая строка - Wolfram Language. Во-первых, вы должны изменить n на панели поиска в Wolfram Alpha, поэтому код также является вводом. Затем он будет генерировать ответ при нажатии Enter

n^2

Вторая строка PHP

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

1
Добро пожаловать в PPCG! Тем не менее, вы должны принять какие-то данные. Вы не можете предполагать, что число хранится в переменной. Прости за это. Вы можете просмотреть список приемлемых методов ввода / вывода здесь. (положительные оценки в ответах означают, что это разрешено, отрицательные - не разрешены)
Rɪᴋᴇʀ

Понял. Я просто отредактирую свой ответ. :) Другое дело, я просто объясню, почему добавление другого кода для ввода в wolfram не применимо.
Jimwel Anobong

Рад был помочь! Надеюсь, вы останетесь в PPCG!
Rɪᴋᴇʀ


1
Язык Wolfram Language основан на mathematica, который нуждается в математической формуле, чтобы быть шрифтом не естественным образом. Другое дело, что ответчик очищает это, это сайт, который не на языке, а на языке вольфрамов - это язык, который его поддерживает. Wolfrsm Language и 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под прикрытием, некоторые bashisms, такие как <<<herestrings, все еще работают и для случаев bash и sh.


Bash and dash (и утилиты GNU), 27

В Ubuntu 16.01 shесть символическая ссылка dash, которая не работает со <<<строками. Таким образом, у нас есть это вместо:

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

Попробуйте онлайн .


Хорошее использование другого режима / env!
programmer5000

Это намного лучше моей версии!
Дейв

1

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

Эта программа возводит в квадрат значения в Cardinal и получает квадратный корень в Octave

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

Попробуйте онлайн! (Октава)

Попробуйте онлайн! (Кардинал)

Так что% это однострочный комментарий в октаве, поэтому он просто получает ввод и печатает квадратный корень

disp(sqrt(input("")))

Так что программа Cardinal не сталкивается с ошибкой деления на 0 и умирает, программа

%:=t.

был сдвинут с пробелом, который игнорируется обеими программами

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

Программа запускается с%.
Получает ввод и сохраняет значение как активное:
устанавливает неактивное значение равным активному =
умножает активное на неактивное t.
Наконец, выводится активное значение.


1

PHP / JavaScript, 43 байта

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

Ввод идет как:

<?php $x = 10; ?>

Вроде самоочевидно, но соответствует ли это правилам? Мой первый код гольф, хотя :-)


1
Добро пожаловать в код гольф! Входные данные должны быть плавающей точкой или строкой, которая является только плавающей точкой. Если я правильно понимаю, это требует отдельного ввода.
programmer5000

Вы уверены, что это работает как JavaScript? Похоже, что обе версии нуждаются в стадии обработки PHP (JavaScript не знает, что делать alert(<?=$x*$x.')>'.sqrt($x)?)
Дейв

0

CGL (CGL Golfing Language) / JS (ES6), 13 байтов (не конкурирует)

Не конкурирует, потому что:

  1. CGL был выпущен после этого вопроса.
  2. CGL не является допустимым языком . Из-за и , CGL технически является допустимым языком.

Код:

 x=>x**2
//-₂

JS:

Просто: функция анонимной стрелки, которая возвращает свой первый аргумент в квадрате. Неназванный код языка закомментирован.

ВКТ:

Неразрывные пространство перед первой строкой действует как комментарий. С /не опа. -Во втором средстве линии для уменьшения текущего номера стека, который по умолчанию равно 0. То затем устанавливает его в -1, где вход хранится. Заменяет первый элемент в текущем стеке с его квадратным корнем, который теперь , когда вход помещен. По умолчанию текущий стек выводится, выводя квадратный корень из ввода.


Это 13 байтов. Я не знаю о CGL, но я вполне уверен, что JS использует ascii / utf-8. CGL, вероятно, также будет использовать UTF-8, если у него нет собственной кодовой страницы.
Rɪᴋᴇʀ

@Riker пока что использует ascii / utf-8. Благодарю.
programmer5000
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.