Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 20, средняя оценка - 4.70
Сидоренко
17 / 43 / 5
Регистрация: 26.10.2010
Сообщений: 447
#1

Поиск Палиндрома - C++

04.02.2012, 17:26. Просмотров 3569. Ответов 1
Метки нет (Все метки)

Нужна Ваша помощь в решении задачи:

Палиндром - это число, запись которого будет читаться одинаково сначала и с конца. Например 4554, 676, 5.
1. Найти все меньшие за N натуральные числа, которые при вознесении в квадрат дают палиндром.
2. Найти все меньшие за N числа - палиндромы, которые при вознесении в квадрат дают палиндром.

Я написал алгоритм поиска по первой задачи, но реализовать его не могу!

В главной функции мы вводим N.

В функции, которая считает 1-ю задачу:
От і=1 к N
Делать
i=i*i
Проверка: і – паліндром - сдесь візіваем функцию проверки на палиндром
Если Да
Сохраняем число в массиве в P1




Переводим і із int в char.
S: строка
N:= длину строки s.
От і=1 к N
Делать
Если s[i]=s[n+1-i], тогда s:=s+1;
Если s=n тогда Да,
Если нет, то Нет.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.02.2012, 17:26
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Поиск Палиндрома (C++):

Поиск палиндрома в строке символов
Условие задачи: 1) Задан символьный массив F(N), N<=260. Найти отрезок массива...

Поиск максимального палиндрома произведения чисел от 100 до 999
Делю задачу, по поиску масимального полиндома полученного при перемножение...

Поиск палиндрома. Итераторы. [ error: no matching function for call to ‘copy_if . ' ]
Здравствуйте. Задача поиска палиндрома (выражения, в котором не имеет...

Нахождение палиндрома
Написать функцию, которая определяет, является ли строка палиндромом. Заголовок...

Нахождение палиндрома.
Написать функцию, которая определяет, является ли строка палиндромом. Заголовок...

Восстановление палиндрома
Если возможных палиндромов больше одного, вывести лексикографически минимальный...

1
Dani
1393 / 637 / 134
Регистрация: 11.08.2011
Сообщений: 2,295
Записей в блоге: 2
Завершенные тесты: 1
04.02.2012, 17:54 #2
Лучший ответ Сообщение было отмечено Сидоренко как решение

Решение

Если ничего не напутал, то так (это первая):
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
#include <iostream>
 
 
bool Equal (int *first, int *last)
{
    while (first<=last)
    {
        if (*first!=*last) return false;
        first++; last--;
    }
 
    return true;
}
 
 
bool isPalindrom (int n)
{
    int mas[5]={0}, sz=-1;
 
    while (n>0)
    {
        mas[++sz]=n%10;
        n/=10;
    }
 
    return Equal(mas,mas+sz);
}
        
 
 
 
int main()
{
    int n;
    std:: cin >> n;
    
    for (int i=0; i<n; ++i)
        if (isPalindrom(i*i)) std:: cout << i << " ";
 
    std:: cout << "\n";
    system ("pause");
    return 0;
}
И если первая правильная, то вот вторая:
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
#include <iostream>
 
 
bool Equal (int *first, int *last)
{
    while (first<=last)
    {
        if (*first!=*last) return false;
        first++; last--;
    }
 
    return true;
}
 
 
bool isPalindrom (int n)
{
    int mas[5]={0}, sz=-1;
 
    while (n>0)
    {
        mas[++sz]=n%10;
        n/=10;
    }
 
    return Equal(mas,mas+sz);
}
        
 
 
 
int main()
{
    int n;
    std:: cin >> n;
    
    for (int i=0; i<n; ++i)
        if (isPalindrom(i*i) && isPalindrom(i)) std:: cout << i << " ";
 
    std:: cout << "\n";
    system ("pause");
    return 0;
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.02.2012, 17:54
Привет! Вот еще темы с решениями:

Вывод палиндрома.
#include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; bool...

Удаление палиндрома
Добрый день , надо написать код , чтобы из веденной строки удалялись слова...

Анаграмма палиндрома
Помогите пожалуйста с решением задачи в c++ . Задана некоторая фраза....

Реализация функции палиндрома
Я написала функцию, функция нормально работает. Но так как я смотрела по...


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

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

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