Изменить: разрешено повторное использование пробелов.
Ваша задача - написать n программ (или функций, или наборов функций без использования параметров или имен функций) на одном языке. Программа k должна вывести (кардинальное) число k на стандартном английском языке в нижнем регистре (с дополнительным завершающим переводом строки). Поэтому первая программа должна выводить one
, вторая должна выводить two
и т. Д. Для числа, состоящего из двух частей, они должны быть разделены дефисом twenty-one
.
Но никакие две программы в вашем представлении не могут совместно использовать непробельные символы или пробельные символы, выполняющие полезные работы. Например, если ваша первая программа просто "one"
, то ни один из "
o
n
и e
не может быть снова использован в других ваших программах.
Вы можете использовать пробельные символы (пробелы, символы новой строки и табуляции) в двух или более программах, если они служат только в качестве разделителей или отступов и ничего не делают сами. Таким образом, вы не можете использовать их повторно на языке Whitespace и не можете использовать их в строках более чем в одной программе.
Вы можете использовать только печатные символы ASCII, вкладки и символы новой строки (включая CR и LF). Каждая программа должна содержать как минимум 1 символ.
Ваша оценка равна сумме 1 / размер программы ^ 1,5. Самый высокий балл выигрывает. Вы можете использовать этот фрагмент стека ( или этот код CJam ) для подсчета очков:
function updatescore(a){var l=a.value.split("\n"),s=0;for(var i=0;i<l.length;i++){var t=l[i].length;t-=t&&l[i][t-1]=="\r";if(t)s+=Math.pow(t,-1.5);}document.getElementById('result').textContent=s;}
<textarea id="input" placeholder="Put your code here, one per line." style="width:100%;height:150px;box-sizing:border-box" oninput="updatescore(this)" onpropertychange="updatescore(this)"></textarea><div>Your score: <span id="result">0</span></div>