Как развернуть число в c
Перейти к содержимому

Как развернуть число в c

  • автор:

Как можно перевернуть число в C++?

Для наглядности: на вход программе даётся число, к примеру 1234. Нужно сделать так, чтобы на выходе вывелось число 4321. Как это можно реализовать в C++? Нужно, чтобы на выходе перевёрнутая переменная была типа int. Буду признателен всем ответам.

Отслеживать
задан 4 окт 2019 в 13:21
173 1 1 золотой знак 2 2 серебряных знака 16 16 бронзовых знаков

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

int n = 4321; int m = 0; while(n) < m = m*10+n%10; n /= 10; >cout  

Отслеживать
ответ дан 4 окт 2019 в 13:24
220k 15 15 золотых знаков 120 120 серебряных знаков 233 233 бронзовых знака

    Важное на Мете
Похожие

Подписаться на ленту

Лента вопроса

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.3.8.5973

Как перевернуть число на языке C ?

В каком смысле перевернуть? Формулировать запросы научись, потом требуй код.

main() unsigned int n,m;
scanf("%d",&n);
m = 0;
while (n > 0) m = m*10 + n%10;
n = n/10;
>
printf("%d\n",m);
>

ВагнеровУченик (183) 4 года назад
Нужно понять вопрос, например число 15 - 51
⎛⎝ṦҜẎ₦Ễ₮⎠⎞ Просветленный (37957) #include main() < unsigned int n,m; scanf("%d",&n); m = 0; while (n >0) < m = m*10 + n%10; n = n/10; >printf("%d\n",m); >
Остальные ответы
int dst = 0;
for (int t = src; t; t/=10) dst = dst * 10 + src % 10;
Похожие вопросы
Ваш браузер устарел

Мы постоянно добавляем новый функционал в основной интерфейс проекта. К сожалению, старые браузеры не в состоянии качественно работать с современными программными продуктами. Для корректной работы используйте последние версии браузеров Chrome, Mozilla Firefox, Opera, Microsoft Edge или установите браузер Atom.

Как перевернуть число с помощью функции в Python?

Самый простой способ перевернуть число это превратить его в строку и с помощью срезов перевернуть. А после поменять тип данных снова на число.

number = 12345 number_as_str = str(number) reversed_number = number_as_str[::-1] new_number = int(reversed_number) print(new_number)# => 54321 

Перевернуть число

Вводится целое число. Вывести число, обратное введенному по порядку составляющих его цифр. Например, введено 3425, надо вывести 5243.

Решение задачи на языке программирования Python

Алгоритм:

  1. Найдем остаток от деления на 10 исходного (первого) числа. Тем самым получим последнюю его цифру. Запомним ее.
  2. Присвоим эту цифру новому (второму) числу-"перевертышу".
  3. Разделим нацело на 10 первое число. Тем самым избавимся от последней цифры в нем.
  4. Снова найдем остаток от деления на 10 того, что осталось от первого числа. Запомним цифру-остаток.
  5. Разделим нацело на 10 первое число. Избавимся от текущей последней цифры в нем.
  6. Умножим на 10 второе число. Тем самым увеличим его разрядность до двух и сдвинем первую цифру в более старший разряд.
  7. Добавим к полученному второму числу запомненную ранее цифру из первого числа.
  8. Будем повторять действия п. 4-7 пока первое число не уменьшится до нуля, т. е. пока не избавимся от всех его разрядов.
n1 = int(input("Введите целое число: ")) # Последнюю цифру первого числа переносим во второе digit = n1 % 10 n2 = digit # Избавляемся от последней цифры первого числа n1 = n1 // 10 while n1 > 0: # находим остаток - последнюю цифру digit = n1 % 10 # делим нацело - удаляем последнюю цифру n1 = n1 // 10 # увеличиваем разрядность второго числа n2 = n2 * 10 # добавляем очередную цифру n2 = n2 + digit print('"Обратное" ему число:', n2)

Примеры выполнения кода:

Введите целое число: 32809 "Обратное" ему число: 90823
Введите целое число: 78290 "Обратное" ему число: 9287

На самом деле мы можем не добавлять последнюю цифру первого числа во второе до цикла. Если присвоить n2 ноль, то в цикле при выполнении выражения n2 = n2 * 10 не будет происходить сдвига разряда, так как при умножении на 0 получается 0. И первая цифра будет добавляться в разряд единиц.

n1 = int(input("Введите целое число: ")) n2 = 0 while n1 > 0: digit = n1 % 10 n1 = n1 // 10 n2 = n2 * 10 n2 = n2 + digit print('"Обратное" ему число:', n2)

Приведенный алгоритм решения математический и соответствует задаче, если условие, что надо обрабатывать именно число, является строгим.

Однако средства Python позволяют решить подобную задачу более практично. Так у списков есть метод reverse , позволяющий изменять порядок элементов на обратный. Мы можем получить из исходной строки список символов, выполнить его реверс, после чего с помощью строкового метода join опять собрать в единую строку.

n1 = input("Введите целое число: ") n_list = list(n1) n_list.reverse() n2 = "".join(n_list) print('"Обратное" ему число:', n2)

Также можно воспользоваться взятием среза из исходной строки с первого до последнего символа с обратным шагом:

n1 = input("Введите целое число: ") n2 = n1[::-1] print('"Обратное" ему число:', n2)

Два последних варианта решения задачи - это способы переворота строки, а не числа как такового. Если объект, который надо переверуть, изначально имеет числовой тип данных (например, генерируется функцией randint() ), то его придется преобразовывать в строковый тип данных с помощью функции str() . И если на выходе мы должны получить опять же число, то надо будет строку превращать обратно в число с помощью функции int() .

from random import randint print("Исходное число:", end=' ') n1 = randint(5000, 1000000) print(n1) n1 = str(n1) n2 = n1[::-1] n2 = int(n2) print('"Обратное" ему число:', n2) 
Исходное число: 970334 "Обратное" ему число: 433079

X Скрыть Наверх

Решение задач на Python

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

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