Как перевернуть заданное число на оборот, и вывести его в противоположно порядке?

Добрый день, на днях мне написал один студент. В университете было дано задание: Задается натуральное трехзначное, как его развернуть так, чтобы цифры этого числа шли в обратном порядке, все это было необходимо реализовать на C#.  К примеру нам дано 123 как получить 321. Я написал ему один из способов который давно мне известен.

Рассмотрим более подробно код программы, у нас целочисленная переменная принимает число 123.

123

12*10=120 и остаток 3

Далее, идет условие что n не равно 0

12
1*10=10 и остаток 2

Далее, идет условие что n не равно 0

1
1 остаток

 

Таким образом с помощью этого метода мы сможем изменить любое число в обратном порядке, величина числа не имеет значение. Однако посидев, я пришел еще к одному решению. Рассмотрим и его:

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

Однако я и на этом не остановился и решил данную задачу еще одним способом.

В этом примере я взял число 1234567 сохранил ее в переменной n и преобразовал ее в строку. А потом строку разбил посимвольно и сохранил в массив. Далее в цикле я по индексу в обратном порядке вывел все цифры наоборот в консоль. По сути это тот же самый пример что и предыдущий, однако он более разбит на ряд функций и более понятно демонстрирует каждый шаг.

 

Обновлено: 21.12.2017 — 17:04

3 комментария

Оставить комментарий
  1. Я переделал программу так чтобы пользователь вводил цифры, но как сделать так чтобы когда я ввожу например -501 не выводилось -1 0 -5 , а -105?

    1. Самый простой вариант удалить все символы не входящие в цифры с помощью Replace, а потом перед первым цифровым значением вставить —

    2. а какая у тебя программа? мой емайл 9055047161@mail.ru я задалась задачей в excel есть прямые и зеркальные им числа…. например 74 и 47, в сумме они дают 121 (это 11*11 или 11 в квадрате)… 47…4+7=11…74 7+4=11 и что мы видим … это совпадение или так, частный случай… кто сможет мне ответить… пока вручную и с некоторыми формулами дошла до 2560…
      и для этого мне нужно отзеркалить числа хотя бы до 10000

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.