Страница 1 из 1

Помогите с С++

Добавлено: Пн дек 13, 2010 9:11
Person
Здравствуйте. Очень нада сделать задачку. Уже всю голову сломал.
Вобщем надо чтобы вводилось число и потом оно печаталось наоборот. Например 1234 - 4321
Я сделал для четырехзначных чисел а нада для любых. вообще никаких идей нет :cry:

вот для четырехзначных что получилось

int x;
cout<<"введите число ";
cin>>x;
cout<<"число наоборот ";
int y;
y = x/1000 + (x/100)%10*10 + (x/10)%10*100 + (x%10)*1000;
cout<<y;

Re: Помогите с С++

Добавлено: Пн дек 13, 2010 14:21
57EA17h
давно я не писал на сях, но если не привязываться к языку, и учитывая, что с полученным числом наоборот не надо более ничего делать, как просто вывести, можно преобразовать исходное в строку, получить её размер и вывести посимвольно в обратном порядке. :)
перевести - itoa().
strlen() подскажет длину получившейся строки.
к строке можно обратиться как к массиву символов, и таким образом вывести в нужном порядке

Re: Помогите с С++

Добавлено: Пн дек 13, 2010 16:30
Person
Если не сложно, дайте пример. Мы массивы пока не проходили... :o

Re: Помогите с С++

Добавлено: Вт дек 14, 2010 16:46
Дыбра
Как вариант - можно сделать то же самое, только подлиннее (например до 10 знаков) и вырезать ненужные нули в полученном числе.
Ну или да, через инверсию строки - это самое оптимальное решение. Реализуется просто - в цикле читать строку с конца посимвольно и записывать в новую строку.

Re: Помогите с С++

Добавлено: Пн май 16, 2011 21:30
enola
А мне нужно ханойские башни сделать :wall: Помогите, кто может)

Re: Помогите с С++

Добавлено: Вт май 17, 2011 21:48
Дыбра
enola писал(а):А мне нужно ханойские башни сделать :wall: Помогите, кто может)
Тань, мне кажется это легко гуглиться. Вполне типовая учебная задача.

Re: Помогите с С++

Добавлено: Вт май 17, 2011 23:29
enola
а преподаватели еще не научились вычислять нагугленное?О_о

Re: Помогите с С++

Добавлено: Вт май 17, 2011 23:37
Дыбра
Алгоритм одинаковый :) Ну а названия переменных поменяешь :)