Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.63/40: Рейтинг темы: голосов - 40, средняя оценка - 4.63
0 / 0 / 0
Регистрация: 05.10.2018
Сообщений: 11
1

Проверить, является ли заданное число симметричным

19.10.2018, 22:21. Показов 8312. Ответов 22
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте ребята, попалась с виду легкая задача, но я на ней застрял, помогите, кому не трудно.
Вот задание:

Проверить, является ли число N симметричным. Пример симметричного числа – 12321.

Пробовал сделать, циклом находит все цифры в числе, но я не знаю, как их сравнить между собой, вот код:
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
31
32
33
#include <iostream>
#include <math.h>
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "Russian");
    int N, k = 0, e;
    cout << "Введите число N: "; cin >> N;
    if (N > 0)
    {
        e = N;
        while (e >= 1)
        {
            e /= 10;
            k++;
        }
        //cout << k << endl;
 
        int a, b = 1, c, h, aa = 0;
        for (int i = 0; i < k; i++)
        {
            b < k; a = N;
            c = pow(10, b); b++;
            h = c / 10;
            a %= c;
            aa = a / h;
            cout << aa << endl;
            
        }
    }
    return 0;
}
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.10.2018, 22:21
Ответы с готовыми решениями:

Дано вещественное число, проверить является ли это число симметричным относительно положения точки до двух знаков после запятой.
Только начинаю программировать на с/с++ и столкнулась с логическими выражениями, простейшие задачи...

Проверить, является ли заданное число совершенным
Составить программу, которая проверяет, является заданное число совершенным. Совершенным называется...

Проверить является ли заданное число простым
Не знаю как написать программу. Только начал учить С++ и задали задачу: написать программу которая...

Проверить является ли заданное число простым
помогите плиз!) Дано натуральное число N, проверить простое оно или нет . Увеличить его значение...

22
261 / 111 / 53
Регистрация: 22.01.2017
Сообщений: 448
19.10.2018, 23:13 2
CnoK, можно предварительно каждую цифру числа сохранить в массив, потом уже сравнивать
0
Злостный нарушитель
 Аватар для Verevkin
9701 / 5260 / 1199
Регистрация: 12.03.2015
Сообщений: 24,783
19.10.2018, 23:31 3
юзай:
C++
1
2
3
4
5
6
7
8
9
10
11
12
unsigned reverse(unsigned x)
{
  unsigned result = 0;
  while (x)
  {
    result = 10 * result + x % 10;
    x /= 10;
  }
  return result;
}
 
if (x == reverse(x)) /* число симметричное */
Добавлено через 1 минуту
Цитата Сообщение от n1b1ru Посмотреть сообщение
можно предварительно каждую цифру числа сохранить в массив, потом уже сравнивать
Не надо так. Это способ двоечника с жидким вакуумом в голове вместо мозга гуманитария.
0
 Аватар для Kuzia domovenok
4264 / 3323 / 925
Регистрация: 25.03.2012
Сообщений: 12,521
Записей в блоге: 1
19.10.2018, 23:34 4
если рассматривать числа как строки
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <string>
using namespace std;
int main()
{
    setlocale(LC_ALL, "Russian");
    string N;
    cout << "Введите число N: "; cin >> N;
    if (N==string(N.rbegin(), N.rend()))
        cout << "YES!" << endl;
    return 0;
}
Добавлено через 58 секунд
Цитата Сообщение от Verevkin Посмотреть сообщение
Не надо так. Это способ двоечника с жидким вакуумом в голове вместо мозга гуманитария.
а мой?
0
Злостный нарушитель
 Аватар для Verevkin
9701 / 5260 / 1199
Регистрация: 12.03.2015
Сообщений: 24,783
19.10.2018, 23:44 5
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
а мой?
А твой - не соответствует условию задачи.
Цитата Сообщение от CnoK Посмотреть сообщение
является ли число N симметричным
Какие строки? Ну нахрена они тут ваще? Ну чистая же арифметика, дискретная! Задача для спинного мозга.
0
n1b1ru
19.10.2018, 23:55
  #6

Не по теме:


Verevkin, ух, какой вы грубый, ну прям как гуманитарий...

0
846 / 649 / 323
Регистрация: 24.02.2017
Сообщений: 2,296
20.10.2018, 00:12 7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <sstream>
#include <algorithm>
using namespace std;
 
int main()
{
  int n=12321;
  stringstream s;
  string str;
 
  s<<n;
  str=s.str();
  reverse(str.begin(),str.end());
  s.str()== str ? cout<<"symmetrical" : cout<<"no";
    system("pause");
    return 0;
}
0
 Аватар для Kuzia domovenok
4264 / 3323 / 925
Регистрация: 25.03.2012
Сообщений: 12,521
Записей в блоге: 1
20.10.2018, 00:13 8
Verevkin, любые введённые из консоли числа - результат форматирования строк по схожему алгоритму.
Получается двойная работа. - iostream расформатирует консольную строку на цифры и вычисляет число, а мы снова его по точно такому же алгоритму форматируем в цифры.
1
846 / 649 / 323
Регистрация: 24.02.2017
Сообщений: 2,296
20.10.2018, 00:14 9
Verevkin, фас
1
Злостный нарушитель
 Аватар для Verevkin
9701 / 5260 / 1199
Регистрация: 12.03.2015
Сообщений: 24,783
20.10.2018, 00:19 10
Цитата Сообщение от n1b1ru Посмотреть сообщение
ух, какой вы грубый
Это я ещё грубить не начал. Со мной даже тёща спорить не рискует.

Добавлено через 4 минуты
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
любые введённые из консоли числа - результат форматирования строк по схожему алгоритму.
Согласен. Но это не имеет отношения к поставленной задаче. Число может быть введено с консоли, а может и любым другим способом передачи данных: из бинарного файла, из константы, из функции (как результат), из порта ввода, из сокета, из чорта лысого! И чего? Во всех этих случаях входной буфер переводить в строку, дыа?
1
 Аватар для Kuzia domovenok
4264 / 3323 / 925
Регистрация: 25.03.2012
Сообщений: 12,521
Записей в блоге: 1
20.10.2018, 00:32 11
Цитата Сообщение от Verevkin Посмотреть сообщение
Но это не имеет отношения к поставленной задаче. Число может быть введено с консоли, а может и любым другим способом передачи данных: из бинарного файла, из константы, из порта ввода, из сокета, из чорта лысого! И чего? Во всех этих случаях входной буфер переводить в строку, дыа?
а почему бы и да? Специальный класс для этого дела даже создали ostringstream; (В Си функция sprintf) Ничего этот Страуструп не понимает...

И вообще, библиотеки iostream и stdio на 90% именно разбиением чисел на цифры и занимаются. Остающийся ввод-вывод строк это лишь 1 вызов системной функции.
1
Злостный нарушитель
 Аватар для Verevkin
9701 / 5260 / 1199
Регистрация: 12.03.2015
Сообщений: 24,783
20.10.2018, 01:01 12
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Специальный класс для этого дела даже создали
Да хоть суперпупермегаспециальный! Только в данном случае можно обойтись без него. См. схему ниже.

Проверить, является ли заданное число симметричным
1
846 / 649 / 323
Регистрация: 24.02.2017
Сообщений: 2,296
20.10.2018, 01:52 13
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <algorithm>
using namespace std;
 
int main()
{
  string s="12325",str;
  str=s;
  reverse(str.begin(),str.end());
  s==str ? cout<<"yes" : cout<<"no";
  system("pause");
  return 0;
}
1
 Аватар для Kuzia domovenok
4264 / 3323 / 925
Регистрация: 25.03.2012
Сообщений: 12,521
Записей в блоге: 1
20.10.2018, 02:09 14
Цитата Сообщение от повар1 Посмотреть сообщение
str=s; reverse(str.begin(),str.end());
у меня бы str сразу в конструкторе в обратном порядке записывался через
C++
1
string s="12325",str(s.rbegin(), s.rend());
Добавлено через 3 минуты
Вот Керниган с Ритчи написал функции stoi/itoa в 70 каком-то году но пользоваться ими нельзя, потому что документов нет
1
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
20.10.2018, 02:39 15
Лучший ответ Сообщение было отмечено CnoK как решение

Решение

CnoK,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
using namespace std;
 
int main()
{
    int N, N1, tmp=0;
    cout <<"N="; cin >>N;
    N1=N;
    
    while (N!=0) {
        tmp=10*tmp+N%10;
        N/=10;
    } 
    if (N1==tmp) cout <<"PALINDROM\n";
    else cout <<"NO PALINDROM\n";
system ("pause");
return 0;
}
1
261 / 111 / 53
Регистрация: 22.01.2017
Сообщений: 448
20.10.2018, 14:38 16
А если число очень длинное? Я за строки.
Цитата Сообщение от Verevkin Посмотреть сообщение
А твой - не соответствует условию задачи.
В условии задачи разве упоминается тип N?
0
Злостный нарушитель
 Аватар для Verevkin
9701 / 5260 / 1199
Регистрация: 12.03.2015
Сообщений: 24,783
20.10.2018, 15:18 17
Цитата Сообщение от n1b1ru Посмотреть сообщение
В условии задачи разве упоминается тип N?
Нет.
Да!

Проверить, является ли заданное число симметричным
1
261 / 111 / 53
Регистрация: 22.01.2017
Сообщений: 448
20.10.2018, 15:27 18
Verevkin, если ТС решил использовать тип int это ещё ничего не значит
1
Злостный нарушитель
 Аватар для Verevkin
9701 / 5260 / 1199
Регистрация: 12.03.2015
Сообщений: 24,783
20.10.2018, 16:51 19
Цитата Сообщение от n1b1ru Посмотреть сообщение
если ТС решил использовать тип int это ещё ничего не значи
Вот ему это и скажи.
0
n1b1ru
20.10.2018, 23:51     Проверить, является ли заданное число симметричным
  #20

Не по теме:


Verevkin, правильно с вами тёща не спорит, мудрая женщина. Слушать надо уметь

0
20.10.2018, 23:51
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.10.2018, 23:51
Помогаю со студенческими работами здесь

Проверить, является ли заданное число простым
Дано целое число N (N&gt;1). Проверить, является ли заданное число простым (простым называется число,...

Проверить, является ли заданное натуральное число совершенным
#include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; int main(); { setlocale...

Проверить, является ли заданное натуральное число простым
у меня есть алгоритм вывода простых чисел, как зделать так штоб можна было ввести число и выдать...

Проверить, является ли заданное натуральное число совершенным
#include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; int main(); { setlocale...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Проектирование и моделирование
hw_wired 28.01.2025
Введение в моделирование Моделирование представляет собой один из фундаментальных методов научного познания, который позволяет изучать объекты и явления через создание их упрощенных аналогов. В. . .
Алгоритмы и исполнители
hw_wired 28.01.2025
Введение в алгоритмы В современном мире информационных технологий алгоритмы играют основополагающую роль в решении различных задач и автоматизации процессов. Алгоритм представляет собой точную. . .
Хранение информации
hw_wired 28.01.2025
Введение: Роль систем хранения информации в современном мире В современную эпоху цифровых технологий эффективное хранение информации становится одним из ключевых факторов успешного развития любой. . .
Обработка числовой информации
hw_wired 28.01.2025
Введение в обработку числовой информации В современном мире обработка числовой информации стала неотъемлемой частью как профессиональной деятельности, так и повседневной жизни. Электронные таблицы. . .
Мультимедиа
hw_wired 28.01.2025
Введение в мультимедийные технологии В современном мире мультимедийные технологии стали неотъемлемой частью нашей жизни, проникнув во все сферы человеческой деятельности. Термин "мультимедиа". . .
Обработка текстовой информации
hw_wired 28.01.2025
Введение в обработку текстовой информации В современном мире обработка текстовой информации играет фундаментальную роль в различных сферах человеческой деятельности. Текстовые редакторы стали. . .
Обработка графической информации
hw_wired 28.01.2025
Введение в компьютерную графику Компьютерная графика стала неотъемлемой частью современного цифрового мира, пройдя впечатляющий путь развития от простейших черно-белых изображений до сложных. . .
Python в Алгоритмике: Решение задач
hw_wired 28.01.2025
Введение в Python и Алгоритмику В современном мире программирование стало неотъемлемой частью образования и профессионального развития. Python зарекомендовал себя как один из самых популярных и. . .
Компьютер как универсальное устройство для работы с информацией
hw_wired 28.01.2025
Введение в устройство компьютера Компьютер представляет собой универсальное электронное устройство, предназначенное для автоматической обработки информации. В современном мире компьютер стал. . .
Информация и информационные процессы
hw_wired 28.01.2025
Понятие информации и ее виды В современном мире информация является одним из фундаментальных понятий, пронизывающих все сферы человеческой деятельности. Под информацией понимают любые сведения об. . .
Алгоритмика
hw_wired 28.01.2025
Введение: Основы алгоритмики и её роль в информатике В современном мире программирование и алгоритмическое мышление стали неотъемлемой частью образования и профессиональной деятельности. . . .
Информационное моделирование
hw_wired 28.01.2025
Введение в информационное моделирование В современном мире информационное моделирование стало неотъемлемой частью научной, образовательной и профессиональной деятельности. Это мощный инструмент. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru