Как нам обратить число с ведущими нулями в число? Например: если вход 004, выход должен быть 400.Обратный номер с ведущими нулями
Я написал ниже программу, но работает только в том случае, если во входных данных нет начальных нулей.
int num;
cout<<"Enter number "<<endl;
cin>>num;
int rev = 0;
int reminder;
while(num != 0)
{
reminder = num % 10;
rev = rev * 10 + reminder;
num = num/10;
}
cout<<"Reverse = "<<rev<<endl;
Есть ли способ ввода числа с ведущими нулями? Даже тогда выше логика не работает для таких чисел.
Любое простое решение? Это выполнимо, принимая ввод как строку и обрабатывая ее. Но это не выглядит красиво.
* EDIT: Если длина номера известна, то можно изменить число с нулевыми значениями. (Без использования строки) *
Я выложу код, как только он будет работать.
EDIT 2: Я попытался вернуть символы в поток cin, а затем прочитать и вычислить обратное. Он работает для двухзначных номеров.
Но если длина известна, ее гораздо легче найти обратную. Все, что мне нужно сделать, умножить на 10 за необходимое количество раз. Так что я думаю, я бы пошел со струнным подходом. Надеюсь, что интервьюер будет счастлив :)
Если вам нужны ведущие нули на входе, вам в значительной степени нужно ввести его в виде строки. – ChrisF
Не выглядит красиво ?! А? :) Это самый простой способ - вам даже не нужно гадать с фактическим числом, как вы делаете выше. Единственная проблема с строковым подходом, по-видимому, заключается в проверке того, что ввод фактически представляет собой число, но это не совсем сложно. В чем проблема? –