Среди чисел 1....n найти числа, которые при умножении на 2 будут давать полиндром - C (СИ)
Формулировка задачи:
Добрый день!Помогите с лабороторной по программированию.Вот задача Среди чисел 1....n найдите числа которые при умножении на 2 будут давать полиндром.
Не используя массива,и чтобы вид был примерно такой 1*2=2 палиндром
2*2=4 палиндром
Помогите пожалуйсто отблагодарю по вебмани!
Решение задачи: «Среди чисел 1....n найти числа, которые при умножении на 2 будут давать полиндром»
textual
Листинг программы
#include <stdio.h> int reverse(int number) { int result = 0; int sign = number > 0 ? 1 : -1; do { result += number % 10; result *= 10; } while (number /= 10); return (result / 10) * sign; } int main(void) { size_t n; size_t i; scanf("%u", &n); for (i = 0; i <= n; i++) if (i * 2 == reverse(i * 2)) printf("%u * %d = %u\n", i, 2, i * 2); return 0; }
Объяснение кода листинга программы
Вывод программы представляет собой последовательность чисел от 1 до n, которые при умножении на 2 дают полиндром. Код программы:
- В функции reverse(int number) выполняется перебор цифр числа в обратном порядке и суммирование их в переменную result.
- Затем результат умножается на 10.
- Если очередная цифра числа равна 0, то условие do завершается и функция возвращает полученный результат.
- В функции main(void) после ввода числа n с помощью scanf и вывода сообщения об ошибке в случае неверного ввода, программа выполняет цикл от 0 до n.
- Для каждого значения i выполняется проверка условия i2 == reverse(i2).
- Если условие выполняется, то выводится сообщение в формате
i * 2 = reverse(i*2)
- Результатом работы программы будет последовательность чисел от 1 до n, которые при умножении на 2 дают полиндром.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д