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

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

Форум русскоязычного сообщества Ubuntu

*

Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

  • Форум русскоязычного сообщества Ubuntu »
  • Ubuntu Russian LoCo »
  • Разработка (Модератор: Azure) »
  • С++ : как перевернуть число 21 .

Автор Тема: С++ : как перевернуть число 21 . (Прочитано 13880 раз)

0 Пользователей и 1 Гость просматривают эту тему.

  • Форум русскоязычного сообщества Ubuntu »
  • Ubuntu Russian LoCo »
  • Разработка (Модератор: Azure) »
  • С++ : как перевернуть число 21 .

Страница сгенерирована за 0.032 секунд. Запросов: 25.

© 2012 Ubuntu-ru — Русскоязычное сообщество Ubuntu Linux.
© 2012 Canonical Ltd. Ubuntu и Canonical являются зарегистрированными торговыми знаками Canonical Ltd.

Как перевернуть число как целое, а не как строку?

Я столкнулся с вопросом: «Как можно преобразовать число как целое, а не как строку?» Может ли кто-нибудь помочь мне узнать ответ? При развороте десятичные цифры числа должны быть перевернуты, т. Е. Использовать основание 10.

19 ответов

Это должно сделать это:

Умножить на -1? уточните свой вопрос пожалуйста .

Ура! Блестящий способ. (Нет, правда. Я надеюсь, что это скорее вопрос типа «Как бы я поступил…», а не то, что вам действительно нужно в производстве)

Проверить ниже просто и легко —

Вы не можете. Поскольку компьютер в любом случае мыслит в шестнадцатеричном формате, вам необходимо преобразовать число в арабский формат, который семантически идентичен преобразованию в строку.

Старая ветка, но такой вариации я не видел:

Согласно комментарию Притам Кармакар , Да, это не сработает, если в конце данного числа 0. Если вы передадите номер 150, он вернет 51, а не 051. поэтому я должен был написать код для отображения числа в обратном порядке в соответствии с вводом пользователя, пожалуйста, проверьте это.

Решение, предложенное @jerjer и @cfern , идеально, но оно не будет работать для отрицательного числа int , такого как -1234507 .

Решение : если число отрицательное, умножьте его на -1 после вызова метода ReverseInt (-1234507).

Вы можете сделать что-то подобное.

Что-то вроде этого?

Как хакерский однострочный (обновление: использовал комментарий Бенджамина, чтобы сократить его):

Более быстрый лайнер с четвертью:

Это не однострочник, потому что мне пришлось включить return 42; . Компилятор C # не позволял мне компилировать, потому что считал, что ни один путь кода не возвращает значение.

P.S. Если вы пишете такой код, и ваш коллега улавливает его, вы заслуживаете всего, что он делает с вами. Имейте в виду!

РЕДАКТИРОВАТЬ: я задавался вопросом, насколько медленнее однострочный LINQ, поэтому я использовал следующий тестовый код:

Получить число в обратном порядке на C++

Пример обратного целого числа, введенного пользователем при программировании на C++. Эта проблема решается с помощью цикла while в этом примере.

Эта программа принимает целочисленный ввод от пользователя и сохраняет его в переменной n .

Затем цикл while повторяется до тех пор, пока n! = 0 не станет ложным.

На каждой итерации вычисляется остаток от деления значения n на 10, вычисляется reversedNumber и значение n уменьшается в 10 раз.

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

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