Как я могу сдвигать цифры в bash?

У меня есть домашнее задание, в котором предлагается сдвинуть десятичное число на указанное количество цифр. Более четко этот сценарий bash будет принимать два входных аргумента, первый - это число (максимум 9 цифр), для которого будет выполняться сдвиг, а второй - это количество (от -9 до 9) цифр, которые нужно сдвинуть. Другое требование состоит в том, что при сдвиге цифры конец, его следует прикрепить к другому концу номера. Одна головная боль требований заключается в том, что мы не можем использовать какие-либо управляющие операторы: никаких циклов, отсутствие if и переключение вариантов.

Пример: 12345 3 должно получиться 345000012, а 12345 -3 должно быть 12345000

Я знаю, что если я изменю 12345 на 10 ^ 3, я получу 345, а затем, если я разделю 12345 на 10 ^ 3, я получу 12 и тогда я могу просто объединить эти две переменные вместе, чтобы получить 34512. Я не совсем уверен, правильно ли это, но это самое близкое, что я могу получить на данный момент. Что касается сдвига -3, я знаю, что 10 ^ -3 составляет 0,001 и будет работать, однако, когда я пытаюсь использовать 10 ^ -3 в bash, я получаю сообщение об ошибке.

Я просто заблудился, любые подсказки были бы очень признательны.

РЕДАКТИРОВАТЬ: После нескольких часов треп (каламбур), решивших эту проблему, я наконец придумал сценарий, который по большей части работает. Я бы отправил код прямо сейчас, но боюсь, что другой безнадежно потерянный студент может наткнуться на него. Я проверю и опубликую то, что я придумал, через неделю или две. Я смог сделать это с модами и разделением. Спасибо всем за ответы, это действительно помогло мне раскрыться и подумать о проблеме с разных сторон.

7
задан Sam 27 October 2012 в 23:55
поделиться