Другие языки программирования и технологии

два четырёхзначных числа A,B. Вывести все четырёхзначные числа от а до б, запись которых является палиндромо

то есть, если даны

1600
2100

то ответ

1661
1771
1881
1991
2002

и т. д.
#include <iostream>
using namespace std;
int main() {
int a = 1600, b = 2100;
for (int i = a; i != b; ++i) {
if (i % 10 == i / 1000) {
if (i / 10 % 10 == i / 100 % 10) {
cout << i << '\n';
}
}
}
cin.get();
}
Дмитрий Юрков
Дмитрий Юрков
70 959
Лучший ответ
Так в чем вопрос? Создаете цикл, определяющий, является ли 4-значное число палиндромом (могу объяснить принципы). Пихаете его в цикл с шагом 1 от первого числа до второго
Малик Дущанов объясните, пожалуйста
int a = 1600;
int b = 2100;

int hi = a / 100;
for (;;) {
int lo = (hi % 10) * 10 + hi / 10;
int tmp = (hi * 100) + lo;
hi++;
if (tmp < a) continue;
if (tmp > b) break;
Console.WriteLine(tmp);
}

Этот алгоритм перебирает только палиндромы, что гораздо быстрее, чем перебирать и проверять все числа подряд.
Руслан Изатов
Руслан Изатов
24 295
input1 = int(input())
input2 = int(input())

def poly(x):
x1 = x // 1000
x2 = x // 100 % 10
x3 = x // 10 % 10
x4 = x % 10
if x1 == x4 and x2 == x3:
return x
else:
return -1

while input1 <= input2:
x = poly(input1)
if x != -1:
print(x)
input1 = input1 + 1

Похожие вопросы