Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Александр94_94
0 / 0 / 0
Регистрация: 04.11.2011
Сообщений: 20
#1

Задача с палиндромом. - C++

04.11.2011, 23:41. Просмотров 932. Ответов 4
Метки нет (Все метки)

Помогите решить вот такую задачу (на С):
Даны натуральные числа N и M. В диапазоне N до M найти все палиндромы, которые при возведении в квадрат так же дают палиндром.

P.S. Для решения нужно использовать условные операторы, циклы; нельзя использовать массив. Возможно можно использовать какие-то новые библиотеки (я лично знаю только stdio.h и math.h).
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.11.2011, 23:41     Задача с палиндромом.
Посмотрите здесь:

Задача с палиндромом (измененная) - C++
Нужно проверить строку на палиндром. Только есть особенность: к примеру дана строка: helloolleh (вывод - да) но строка к примеру:...

Проверить ,является ли введённое слово палиндромом (задача на рекурсию) - C++
Проверить ,является ли введённое слово палиндромом( Слово , которое одинаково читается слева направо и справа налево ) с помощью рекурсии

Задание с палиндромом - C++
Помогите, пожалуйста, решить. Палиндромом считается любой набор символов, симметричный относительно своей середины. Строка задается...

Является ли число палиндромом - C++
Алгоритм проверки числа должен быть именно такой (так поставили задачу) Но он работает некорректно. / Число - палиндром #include...

Является ли строка палиндромом - C++
Проверить,является ли строка палиндромом. Прокоментируйте строки пожалуйста

Является ли число палиндромом - C++
Дано натуральное число n (n>=9999). Является ли это число палиндромом (перевертышем) с учетом четырех цифр, как, например, числа 2222,...

Является ли строка палиндромом - C++
#include <iostream> #include <string.h> using namespace std; bool palindrom(char s); int main() { char s; ...

Является ли K-ая строка палиндромом? - C++
Дан текст из нескольких строк, введенных с клавиатуры. Определить является ли заданная (k-ая) строка палиндромом.

Определить, является ли строка палиндромом - C++
Помогите, пожалуйста, решить задачу. Пользователь с клавиатуры вводит строку. Нужно определить является ли строка палиндромом, и (это...

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

Проверить является ли строка палиндромом - C++
Задана строка, состоящая из символов. Символы объединяются в слова. Слова друг от друга отделяются одним или несколькими пробелами. В конце...

Проверить является ли слово палиндромом - C++
Символьная строка содержит одно слово. Проверить, будет ли оно читаться одинаково справа налево и слева направо (т.е. является ли оно...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silent_1991
Эксперт С++
4958 / 3034 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
05.11.2011, 00:02     Задача с палиндромом. #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
#include <stdio.h>
 
typedef unsigned long uint32_t;
 
uint32_t reverse(uint32_t number)
{
    uint32_t result = 0;
    
    while (number != 0)
    {
        result = result * 10 + number % 10;
        number /= 10;
    }
    
    return result;
}
 
int is_palindrome(uint32_t number)
{
    return number == reverse(number);
}
 
int main(void)
{
    uint32_t n, m;
    
    uint32_t i;
    
    printf("Enter N: ");
    scanf("%ld", &n);
    printf("Enter M: ");
    scanf("%ld", &m);
    
    for (i = n; i <= m; ++i)
        if (is_palindrome(i) && is_palindrome(i * i))
            printf("%ld\n", i);
 
    return 0;
}
Александр94_94
0 / 0 / 0
Регистрация: 04.11.2011
Сообщений: 20
05.11.2011, 00:24  [ТС]     Задача с палиндромом. #3
А можно более легкое (пусть даже менее эффективное) решение этой задачи? Или, если не сложно, прокомментируйте пожалуйсто с 3 по 27 строку, а то мне мало понятно что там происходит...т.к. большей часть решали задачи вида:
C
1
2
3
4
#include<stdio.h>
void main ()
{... 
}
silent_1991
Эксперт С++
4958 / 3034 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
05.11.2011, 00:32     Задача с палиндромом. #4
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
#include <stdio.h>
 
int main(void)
{
    unsigned n, m;
    
    unsigned i;
    unsigned copy_i, sqr_i;
    unsigned reverse_copy_i, reverse_sqr_i;
    
    printf("Enter N: ");
    scanf("%u", &n);
    printf("Enter M: ");
    scanf("%u", &m);
    
    for (i = n; i <= m; ++i)
    {
        copy_i = i;
        reverse_copy_i = 0;
 
        while (copy_i != 0)
        {
            reverse_copy_i = reverse_copy_i * 10 + copy_i % 10;
            copy_i /= 10;
        }
 
        sqr_i = i * i;
        reverse_sqr_i = 0;
 
        while (sqr_i != 0)
        {
            reverse_sqr_i = reverse_sqr_i * 10 + sqr_i % 10;
            sqr_i /= 10;
        }
 
        if (i == reverse_copy_i && i * i == reverse_sqr_i)
            printf("%ld\n", i);
    }
 
    return 0;
}
Александр94_94
0 / 0 / 0
Регистрация: 04.11.2011
Сообщений: 20
05.11.2011, 01:04  [ТС]     Задача с палиндромом. #5
Огромное Вам спасибо!
Yandex
Объявления
05.11.2011, 01:04     Задача с палиндромом.
Ответ Создать тему
Опции темы

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