Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
Mila27
1 / 1 / 0
Регистрация: 04.02.2019
Сообщений: 50
1

Функция: определить, является ли число палиндромом

06.02.2019, 19:27. Просмотров 1234. Ответов 5

есть готовый код, кто-то может объяснить что значит этот фрагмент из кода с++
C++
1
2
3
4
5
6
7
8
9
10
11
int reverse_number(int number)
{
    int n = 0;
    while (number)
    {
        n = 10 * n + number % 10;
        number /= 10;
    }
 
    return n;
}
Определить является ли число палиндромом используя функцию распознавания таких чисел.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <iostream>
using namespace std;
 
int reverse_number(int number)
{
    int n = 0;
    while (number)
    {
        n = 10 * n + number % 10;
        number /= 10;
    }
 
    return n;
}
 
 
int main()
{
    setlocale(0, "rus");
    cout << "Введите число ";
    int number;
    cin >> number;
    if (number == reverse_number(number))
        cout << number << " Это палиндром" << endl;
    else
        cout << "Это не палиндром " << endl;
 
    system("Pause");
    return 0;
}
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.02.2019, 19:27
Ответы с готовыми решениями:

Функция, определяющая, является ли число палиндромом
Помогите написать программу с комментариями (Функции) Написать функцию, которая... определяет,...

Определить, является ли число палиндромом
Дано натуральное число n (n&lt;9999). Определить, является ли это число палиндромом (перевертышем) с...

Определить, является ли число палиндромом
Проверить истинность высказывания: «Данное четырехзначное число читается одинаково слева направо...

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

Определить, является ли число палиндромом
Если можно то плиз с коментариями, я ток новичёк в этой проге, заранее спс. 1) Переменной t...

5
JAlHund
95 / 62 / 35
Регистрация: 14.10.2018
Сообщений: 152
06.02.2019, 22:23 2
Возвращает число, цифры которого идут в порядке, обратном данному. 1234 - 4321
0
Mila27
1 / 1 / 0
Регистрация: 04.02.2019
Сообщений: 50
07.02.2019, 10:37  [ТС] 3
n = 10 * n + number % 10;
number /= 10;
Подробнее это рассписать можно?
0
JAlHund
95 / 62 / 35
Регистрация: 14.10.2018
Сообщений: 152
07.02.2019, 12:23 4
Лучший ответ Сообщение было отмечено Mila27 как решение

Решение

% - остаток от деления
number /= 10 то же самое, что и number = number / 10
Приведу пример, чтобы понятнее было. Вот у нас число number, нужно получить число, цифры которого идут в обратном порядке.
Например, дано number = 1234. А в число n мы запишем результат, пока в нем пусть будет 0
n = 10 * n + number % 10 или n = 10 * n + остаток от деления number на 10. n = 10*0 + 1234 % 10 = 4. В n хранится 4. А number делим на 10, чтобы пройти все цифры числа number
n = 4*10 + 123 % 10 = 3. В n хранится 43. number /=10
n = 43*10 + 12% 10 = 432. В n хранится 432. number =/10
n = 432*10 + 1% 10 = 4321. В n хранится 4321. number / 10 равен нулю, прекращаем.
Итак, в n у нас 4321
1
Yetty
2580 / 1813 / 1199
Регистрация: 18.12.2017
Сообщений: 5,826
07.02.2019, 12:38 5
Цитата Сообщение от Mila27 Посмотреть сообщение
n = 10 * n + number % 10;
number /= 10;
Подробнее это рассписать можно?
10*n - умножаем 10 на n
number % 10 - находим остаток от деления number на 10
number /= 10; - то же самое что и number = number/10 - целочисленно делим number на 10

например параметр функции - число 123. изначально n=0.
после 1 итерации цикла:
n=10*n+number%10=10*0+123%10=3
number=123/10=12
после 2 итерации цикла:
n=10*3+12%10=30+2=32
number=12/10=1
после 3 итерации цикла:
n=10*32+1%10=320+2=321
number=1/10=0

цикл while выполняется пока number не равно нулю. операции закончены. return n - функция возвращает число 321

p.s. пока размышлял как расписать подробнее JAlHund уже всё растолковал
0
Mila27
1 / 1 / 0
Регистрация: 04.02.2019
Сообщений: 50
07.02.2019, 14:42  [ТС] 6
Спасибо, теперь на примере все понятно)
0
07.02.2019, 14:42
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.02.2019, 14:42

Определить является ли заданное десятичное число палиндромом
Дано трехзначное число. Напишите программу определения, является ли оно палиндромом, т.е. числом,...

Определить, является ли заданное натуральное число палиндромом
Всем доброго времени суток!Подскажите пожалуйста, если для определения является ли строка...

Определить, является ли данное пятизначное число палиндромом
Программа должна определять, является ли данное пятизначное число палиндромом. Палиндром-число или...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.