Вызов
Учитывая имя элемента, выведите его электронную конфигурацию.
вход
В качестве входных данных будет использоваться полное имя каждого элемента (в диапазоне от Водорода 1 до Кальция 20) за некоторыми исключениями - вы должны иметь возможность учитывать следующие входные данные:
Natrium - This is sodium
Kalium - This is potassium
Обратите внимание, что вводы «натрий» и «калий» все еще должны быть действительными.
Первая буква всегда будет заглавной.
Выход
Вы можете обратиться к этой веб-странице для получения инструкций о том, как создать диаграмму конфигурации электронов.
Следующий список показывает максимальное количество электронов в каждой оболочке:
- 1-я оболочка - 2 электрона
- 2-я оболочка - 8 электронов
- 3-я оболочка - 8 электронов
- 4-я оболочка - 14 электронов (хотя максимальное количество электронов в этой оболочке составляет 2)
Пример вывода электронной конфигурации следующий:
В центре диаграммы должен быть один-двухбуквенный символ элемента.
Можно использовать точки или крестики, и неважно, где они находятся.
Вывод не обязательно должен быть именно таким, но должен быть графикой ASCII. Единственное, чего не может быть, это в форме 2.8.8.1
или любой другой форме, подобной этой.
Круги не нужны
Встроенные функции, которые обращаются к периодической таблице элементов или производят диаграммы или электронные конфигурации, таким образом запрещены.
выигрыш
Самая короткая программа в байтах побеждает.
Ответы:
MATLAB,
360 363 290 304295 байтСмотрите в нижней части поста о том, как проверить старый код с помощью Octave.
Этот код берет имя элемента (включая Kalium и т. Д.) И отображает вывод в формате ascii теперь, когда правила изменились.
Правила изменились, так как я написал код, требующий вывода ASCII. Я обновил свой код, чтобы сделать это за счет 14 байтов. Я сохранил 9 байтов, избавившись от reshape () и просто сделав
a
матрицу правильной формы для начала.Вот объяснение того, как это работает:
Это вывод для водорода (игнорируйте точки, чтобы избежать удаления линий при отображении здесь):
А вот и вывод на Кальций.
И вывод для Natrium, который сейчас работает правильно (до Natrium это привело бы к азоту!).
Новая версия кода не работает с Octave, так как она используется,
spiral()
которая присутствует только в MATLAB.Однако вы можете протестировать старый код с помощью онлайн-интерпретатора Octave :
Запустите его, затем введите строку, например: «Водород» (включая кавычки). Как только это будет сделано, вам нужно будет нажать кнопку развернуть график (выглядит как маленький символ графика в верхнем правом углу интерпретатора), чтобы он показывал все целиком. К сожалению, в Octave добавляются линии, соединяющие точки, в MATLAB этого не происходит. Но, по крайней мере, это позволяет вам проверить логику этого. Как я уже сказал, это все еще графический вывод, но вы получаете представление о том, как выглядят элементы.
источник
Python 3, 529 байт
спасибо Томасу и Бете за то, что они указали на некоторые вещи, которые должны были быть для меня очевидны, сэкономив мне несколько байтов
значительное улучшение: использование нарезки строк вместо поиска dict
Не самая красивая из программ или результатов, но эй, нам нужно было что-то, чтобы начать этот вызов. Попробуйте онлайн .
источник
"H 1"
и разделить их на пробел позже?источник