Code Monkey home page Code Monkey logo

task_001's Introduction

Task 001. A little bit of Ancient Italy.

Добрый день, коллеги! Мы рады вас приветствовать в нашем peer to peer канале Peer Education!

Сегодня мы начинаем погружение в мир интересных задач по программированию. Напомню основные правила: задачи должны быть решены на языке программирования C. Необходимо соблюдать принципы структурного программирования, а также форматировать код с помощью clang-format. Файл конфигурации вы найдете в папке clang.

Задание

Римские цифры — цифры, использовавшиеся древними римлянами в их непозиционной системе счисления.

Натуральные числа записываются при помощи повторения этих цифр. При этом, если большая цифра стоит перед меньшей, то они складываются (принцип сложения), если же меньшая стоит перед большей, то меньшая вычитается из большей (принцип вычитания). Последнее правило применяется только во избежание четырёхкратного повторения одной и той же цифры.

Римские цифры появились за 500 лет до нашей эры у этрусков, которые могли заимствовать часть цифр у протокельтов.

Римские обозначения чисел известны ныне лучше, чем любая другая древняя система счисления. Объясняется это не столько какими-то особыми достоинствами римской системы, сколько тем огромным влиянием, которым пользовалась Римская империя в своё время. Этруски, завоевавшие Рим в VII веке до н. э., испытали на себе влияние восточно-средиземноморских культур. Этим отчасти объясняется сходство основных принципов римской и аттической систем счисления. Обе системы были десятичными, хотя в обеих системах счисления особую роль играло число пять. Обе системы использовали при записи чисел повторяющиеся символы.

Задача 1. Необходимо реализовать программу в файле src/roman_to_arabic.c для перевода из римской записи в арабскую. Программа должна принимать на ввод строку, обрабатывать ее и выводить на экран число. Проверить корректность введенных данных. Обратите внимание на подсказку снизу. В случае любой ошибки выводить на экран "Puck you, Verter!". Тест кейсы вы найдете в папке src.

Внимание: гарантировано что строка на вводе не будет длиннее 15 символов.

Подсказка

Отлично вы справились с поставленной задачей и теперь мы можем обрабатывать римские расчеты намного быстрее. Возможно это поможет нам победить Вертера.

Бонус. Задача 2. Реализовать программу src/universal_convert.c для перевода из римской записи в арабскую и наоборот. На ввод программа должна принимать число 1 - для перевода из римской записи в арабскую, 2 - для перевода из арабской в римскую. Далее на вход подается строка либо число, в зависимости от выбранного пункта. В качестве ответа вывести на экран результат конвертации. В случае любой ошибки выводить на экран "Puck you, Verter!". Тест кейсы вы найдете в папке src.

Внимание: гарантировано что число на вводе будет не больше 3999.

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

Дедлайн на эти задания 23:59 28.02.2024.

Увидимся в среду.

task_001's People

Contributors

olga-koml avatar fortune76 avatar zv0r avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.