Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
roma_1997
0 / 0 / 0
Регистрация: 07.11.2015
Сообщений: 1
1

Найти все числа-палиндромы из диапазона от n до m, которые при возведении в квадрат также дают палиндром

07.11.2015, 21:43. Просмотров 875. Ответов 2
Метки нет (Все метки)

Здравствуйте! Знаю как написать код, чтобы программа находила числа, дающие в квадрате палиндром. Ниже приведён код. А как находить палиндромы, которые в квадрате также дают палиндром не знаю. Помогите пожалуйста решить задачу на языке С(Си), желательно, без массивов. Вот условие: нужно найти все числа-палиндромы из диапазона от n до m, которые при возведении в квадрат также дают палиндром. Палиндром - это число, которое можно читать как справа-налево, так и слева-направо(11,121,212).

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
#include <stdio.h>
#include <math.h>
#include <conio.h>
main()
{
    int s[10000],i,q,a, z,h[10000],v,n,m,j,y,w;
    puts("n m");
    scanf("%d %d", &n, &m);
    v=0;
    while (n!=m){
        y=0;
        i=0;
        a=n*n;
        while (a!=0) {
            q=a%10;
            a=a/10;
            s[i]=q;
            i++;
            z=i;
        }
        for (i=0;i<z;i++)
        y=y*10+s[i];
        if ((n*n==y)&&(n>3)) {h[v]=n; v++;}
        n++;
    }
    for (i=0;i<v;i++)
    printf("    %d", h[i]);
        getch();
    return(0);
}
P.S. Пишите на Си, я не С++
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.11.2015, 21:43
Ответы с готовыми решениями:

Найти все меньшие 1000 натуральные числа, которые при возведении в квадрат дают палиндром
Найти все меньшие 1000 натуральные числа, которые при возведении в квадрат дают...

Найти целые числа, которые при возведении в квадрат дают палиндромы
Помогите пожалуйста с задачей. (Циклические алгоритмы, язык Си). Вот условие:...

Найти целые двузначные числа, которые при возведении в квадрат дают палиндромы
Найти цели двузначные числа, которые при возведении в квадрат дают палиндромы....

Найти все трехзначные числа, которые при делении на 2 дают остаток 1
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace std; void _tmain()...

Найти все числа палиндромы, которые меньше N
Используя цикл while написать программу: Дано натуральное число N. Найти все...

2
Excalibur921
758 / 431 / 70
Регистрация: 12.10.2013
Сообщений: 2,900
10.11.2015, 00:06 2
Метод в лоб: а почему нельзя возвести все от m до n палиндромы в квадрат каждую отдельно и проверять палиндром она или нет?). А хранить это цифры или их номер вы где будете? Массив друг программиста).
0
easybudda
Модератор
Эксперт CЭксперт С++
10148 / 6055 / 1522
Регистрация: 25.07.2009
Сообщений: 11,476
10.11.2015, 00:35 3
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
#include <stdio.h>
 
unsigned reverse_number(unsigned n) {
    unsigned ret = 0;
    
    for ( ; n; n /= 10 )
        ret = ret * 10 + n % 10;
    
    return ret;
}
 
int is_palindrome(unsigned n) {
    return ( n == reverse_number(n) );
}
 
int main(void) {
    unsigned low, high;
    
    while ( printf("Low & high: ") && scanf("%u%u", &low, &high) == 2 && low < high )
        for ( ; low <= high; ++low )
            if ( is_palindrome(low) && is_palindrome(low * low) )
                printf("%u %u\n", low, low * low);
    
    return 0;
}
Код
~/cpp/numbers $ gcc test_palindrome.c 
~/cpp/numbers $ ./a.out 
Low & high: 10 1000
11 121
22 484
101 10201
111 12321
121 14641
202 40804
212 44944
Low & high: q
~/cpp/numbers $
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.11.2015, 00:35

Найти те числа отрезка, которые при делении на данное число K, дают в остатке число 4
Переведите пожалуйста код задачи из паскаля в СИ, спасибо. Условие: Дан...

Найти все слова, которые представляют собой слово-палиндром
Данго предожение, в котором слова разделенеы запятой или пробелом, а общяя...

Вывести все числа из диапазона от 0 до 1000, которые делятся на 2 и на 3 без остатка (for, while)
Напишите программу которая выводит все числа из диапазона от 0 до 1000 которая...


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

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

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