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

Поиск Палиндрома

04.02.2012, 17:26. Просмотров 3724. Ответов 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
Ответы с готовыми решениями:

Поиск палиндрома в строке символов
Условие задачи: 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,299
Записей в блоге: 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...

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


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

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

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