Форум русскоязычного сообщества 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 раз.