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

Симметричное число

08.11.2013, 17:10. Показов 3917. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста!
1. Проверить является ли данное число симметричным (Одинаково пишется слева направо и справа налево)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.11.2013, 17:10
Ответы с готовыми решениями:

Симметричное число
Помогите пожалуйста 1. Проверьте, является ли число симметричным (одинаково пишется слева направо и справа налево) 2.Задан массив из N...

симметричное число
пытаюсь определить, является ли 4-х значное число палиндромом. что я здесь не так делаю? #include <iostream> using namespace...

В массиве найти самое большое симметричное число
Здравствуйте! Помогите, пожалуйста, с задачей: в целочисленном массиве найти самое большое симметричное число.

7
5 / 5 / 1
Регистрация: 25.10.2013
Сообщений: 230
09.11.2013, 17:06
Для начала можно его перевести в стринг (printf или atoi). Потом посмотреть длину стринга str.size() или str.length(), отщипывать по 1 символу (strncpy) и сравнивать.
Есть еще вариант поделить строку пополам(если количество символов нечетное, то можно просто выкинуть центральный). Потом перевернуть одну из половинок строки (strrev) и сравнить получившиеся половинки.
1
Мой лучший друг-отладчик!
 Аватар для ZaMaZaN4iK
167 / 167 / 30
Регистрация: 24.06.2012
Сообщений: 662
Записей в блоге: 5
09.11.2013, 17:13
а не проще ли сразу считать число в строку?
2
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
09.11.2013, 21:27
Цитата Сообщение от Arnold879 Посмотреть сообщение
симметричным (Одинаково пишется слева направо и справа налево)
Палиндром называется
1
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
09.11.2013, 21:50
Можно и с числами поиграть:
C++
1
2
3
4
5
6
7
8
9
10
11
12
bool mirror( const int value )
{
    int rvalue = 0;
    int mvalue = value;
    do
    {
        rvalue += mvalue % 10;
        mvalue /= 10;
    } while( mvalue && (rvalue*=10) );
 
    return rvalue == value;
}
1
0 / 0 / 0
Регистрация: 08.11.2013
Сообщений: 11
10.11.2013, 09:53  [ТС]
Спасибо)
0
30 / 30 / 21
Регистрация: 19.02.2011
Сообщений: 171
10.11.2013, 10:15
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int main()
{
float n; 
char c[256],*p; 
scanf(c,"%f",n); 
p=strstr(c,"."); 
if (*(p-1)==*(p+1) && *(p-2)==*(p+2)) 
{
 cout<< "Otvet: yes";
} 
else 
{
cout << "Otvet: no";
}
return 0;
}
0
 Аватар для Anton_Kretov
89 / 51 / 15
Регистрация: 26.06.2013
Сообщений: 179
10.11.2013, 13:11
Если не хотите заниматься преобразованиями и т.д., то вот вам мой код, написал только что, использую только int и bool переменные для проверки, безо всяких преобразований:

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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#include <iostream>
#include <conio.h>
 
using namespace std;
 
int countDigits(int number);
bool isEvenPalindrom(int partOne, int partTwo);
 
int main()
{
    int number;
    cout << "Hello! Enter a number to check if it is a palindrom or not: ";
    cin >> number;
    int digits = countDigits(number);
    cout << "\n" << "Digits: " << digits;
    int partOne, partTwo;
    int middle;
    int des = 1;
 
    if(digits % 2 == 0) {
        middle = digits / 2;
            for(middle; middle > 0; middle--) des *= 10;
        partOne = number / des;
        partTwo = number % des;
    } else {
        middle = digits / 2;
            for(middle; middle > 0; middle--) des *= 10;
        partOne = number / (des * 10);
        partTwo = number % des;
 
    }
 
    //Снимите комментарий, если хотите видеть части числа
       // cout << "\n" << "partOne = " << partOne << " partTwo = " << partTwo;
 
    if(isEvenPalindrom(partOne, partTwo))
        cout << "\n" << "The number is a palindrom!";
    else
        cout << "\n" << "The number is not a palindrom!";
 
    getch();
    return 0;
}
 
int countDigits(int number) {
    int digits = 0;
    while(number > 0) {
        digits++;
        number /= 10;
    }
 
    return digits;
}
 
bool isEvenPalindrom(int partOne, int partTwo) {
    int newPartTwo = 0;
 
 
    while(partTwo > 0) {
        newPartTwo += partTwo % 10;
        partTwo /= 10;
        if(partTwo > 0) {
            newPartTwo *= 10;
        }
    }
 
    return newPartTwo == partOne;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.11.2013, 13:11
Помогаю со студенческими работами здесь

Функция, которая в последовательности из N чисел находит первое симметричное число
ПОМОГИТЕ ЗАДАНИЕ Использование функции void Разработать функцию, которая в последовательности из N находит первое симметричное число и...

Функция, которая в последовательности находит первое симметричное число и их общее количество
Использование функции void Разработать функцию, которая в последовательности из N находит первое симметричное число и их общее...

Найти количество столбцов матрицы, где есть хоть одно симметричное число
Задание: Найти количество столбцов матрицы, где есть хоть одно симметричное число. Вот собственно мой код, но он выводит количество...

Симметричное слово
Найти во введённом тексте самое длинное симметричное слово, т.е. слово, которое слева направо и справа налево читается одинаково. Считать,...

Определить симметричное слово максимальной длины
Дан символьный массив, образованный из слов, разделенных пробелами. С использованием процедур и функций выполнить: Определить...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru