Ви повинні написати програму або функцію , яка, коли дана непорожній рядок S з N символів ASCII для друку † , виводить програму , яка буде завершуватися з кодом виходу C , де C є ASCII елемент коду в положенні 0 в S . Ця програма , яку ви напишете додатково виводити програму P , таким чином , що при запуску, він виходить з виходом кодом C ' , де C' є ASCII елемент коду в положенні 1 в S . Програма P виведе іншу програму P ' . Цей процес повторюється, поки в S не залишиться жодних символів. Після цього ви повинні нічого не виводити, після чого слід необов'язковий новий рядок; і слід вийти з кодом виходу 0.
† Символи між 0x20
та 0x7e
включно.
Ще кілька правил:
- Програми, що змінюють самозмінення, не дозволені: потрібно вивести джерело в STDOUT (або, повернути значення спочатку)
- Ви не можете прочитати власний вихідний код.
Виграє найкоротша така програма в байтах.
Для певного рудиментарного тестування цей сценарій рубіну може бути використаний. (Перший аргумент - це спосіб виклику сценарію, другий - програма, а третій - рядок введення.)
Гіпотетичний приклад
Скажіть, програма є FOO
. Коли задано рядок "ABC", він виводить BARA
. Ця програма закінчується кодом 65
та виходами BARB
. Це, в свою чергу, виходить з кодом 66
і вихід BARC
. Ця програма закінчується кодом 67
та виходами BAR!
. Це нічого не виводить і завершує роботу з кодом 0
.
33 throw
щоб кинути довільне число. Ви використовуєте мінуси для рівня ОС, а зміщення становить -512. Шукаю багато, але я шукаю тут: скаргу.tuwien.ac.at
0
є Успіх. tio.run/nexus/…