Изменить: разрешено повторное использование пробелов.
Ваша задача - написать 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>