Форум программистов, компьютерный форум CyberForum.ru

Число задом наперед - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
Sapendo
5 / 5 / 3
Регистрация: 13.05.2014
Сообщений: 130
23.05.2014, 00:53     Число задом наперед #1
Помогите пожалуйста!!!!
Задача. Перевернуть число, введенное с клавиатуры, задом на перед. Например, введено 12345, должны вывести 54321
C++
1
2
3
4
5
6
7
# include <iostream>
using namespace std;
void main ()
{
int n(0);
cout<<"Enter number: ";
cin>>n;
?????????
Подключать библиотеки другие нельзя!!!!!
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tenzor
5 / 5 / 9
Регистрация: 21.05.2014
Сообщений: 29
23.05.2014, 00:59     Число задом наперед #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
using namespace std;
int main() {
    int num;
    int temp;
    int answer = 0;
    cout << "Enter any number" << endl;
    cin >> num;
    while(num!=0) {
        temp = num%10;
        answer=answer*10+temp;
        num = num/10;
    }
    cout << "New number: " << answer << endl;
    return 0;
}
RamonN
 Аватар для RamonN
32 / 32 / 11
Регистрация: 13.07.2011
Сообщений: 136
23.05.2014, 01:03     Число задом наперед #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
 
int main()
{
    int n;
    std::cin >> n;
    while (n != 0) {
        int num = n % 10;
        n /= 10;
        std::cout << num;
    }
 
    std::cout << std::endl;
 
    system("pause");
    return 0;
}
Sapendo
5 / 5 / 3
Регистрация: 13.05.2014
Сообщений: 130
23.05.2014, 01:04  [ТС]     Число задом наперед #4
Спасибо! Очень хорошый ответ! А через цикл for это реально сделать????
Tenzor
5 / 5 / 9
Регистрация: 21.05.2014
Сообщений: 29
23.05.2014, 01:06     Число задом наперед #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
using namespace std;
int main() {
    int num;
    int temp;
    int answer = 0;
    cout << "Enter any number" << endl;
    cin >> num;
    for(;num!=0;) {
        temp = num%10;
        answer=answer*10+temp;
        num = num/10;
    }
    cout << "New number: " << answer << endl;
    return 0;
}
RamonN
 Аватар для RamonN
32 / 32 / 11
Регистрация: 13.07.2011
Сообщений: 136
23.05.2014, 01:09     Число задом наперед #6
Sapendo, А зачем, через for будет точно так же, т.е.
C++
1
for (;n != 0;)
и тело цикла точно такое же как если бы был цикл while
Sapendo
5 / 5 / 3
Регистрация: 13.05.2014
Сообщений: 130
23.05.2014, 01:20  [ТС]     Число задом наперед #7
Помогите разобраться теперь!
Предположим число 12
C++
1
2
3
4
5
6
7
 for(;num!=0;)//введенное число не должно равняться нулю
{
        temp = num%10;// поделили по модулю  temp = 2
        answer=answer*10+temp;//answer=0*10+2=2
        num = num/10;//num = 1
    }
    cout << "New number: " << answer << endl;
Не могу понять почему мы выводим answer и как получается 21??????
Какая функция переворачивает число?????
Спасибо за пояснения, хочу разобраться!!!!
moomot
 Аватар для moomot
9 / 9 / 3
Регистрация: 12.07.2013
Сообщений: 57
23.05.2014, 01:29     Число задом наперед #8
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
using namespace std;
int main () {
    int a = 0, temp = 0;
    cin >> a;
    while(a>0)
    {
        temp = a%10;
        a = a/10;
        cout << temp;
    }
    return 0;
}
RamonN
 Аватар для RamonN
32 / 32 / 11
Регистрация: 13.07.2011
Сообщений: 136
23.05.2014, 01:30     Число задом наперед #9
Sapendo, В комментариях к коду же все написано
Сначала берем от числа num по модулю 10, т.е. берется последняя цифра, например 2.
Затем к числу answer прибавляем temp, предварительно умножив число answer на 10.
И далее делим число num на 10, чтобы убрать последнюю цирфу.
Sapendo
5 / 5 / 3
Регистрация: 13.05.2014
Сообщений: 130
23.05.2014, 01:32  [ТС]     Число задом наперед #10
Коментарии к коду это я написал!!!! Но вопросы те же!!!!!
RamonN
 Аватар для RamonN
32 / 32 / 11
Регистрация: 13.07.2011
Сообщений: 136
23.05.2014, 02:46     Число задом наперед #11
Sapendo, Если быть кратким: С помощью оператора взятия по модулю % берем от числа num последнюю цифру (проще говоря, делим число на 10 и берем остаток от деления). Далее, чтобы поместить то число. которое у нас получилось после операции взятия по модулю, мы сначала должны итоговое число answer умножить на 10, чтобы каждый раз когда мы добавляли цифру в answer, у нас она добавлялась в конец. Затем мы делим введенное нами число num на 10, чтобы убрать последнюю цифру, т.е было число 21, делим на 10, остается 2, потому что у нас num является целочисленной переменной, соответственно дробная часть теряется.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.05.2014, 04:00     Число задом наперед
Еще ссылки по теме:

Написать строку задом наперед C++
C++ Перезаписать массив типа int задом наперед
Вывести буквы в словах строки задом-наперед C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
uhx
 Аватар для uhx
56 / 56 / 6
Регистрация: 11.07.2013
Сообщений: 300
23.05.2014, 04:00     Число задом наперед #12
% - выдает остаток от деления
Т.е. 321 % 10 выдаст единицу
123 % 10 выдаст тройку
4 % 2 = 0
5 % 2 = 1
Yandex
Объявления
23.05.2014, 04:00     Число задом наперед
Ответ Создать тему
Опции темы

Текущее время: 12:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru