From 314e28eb685da218d0aaeb650ad682625a1734df Mon Sep 17 00:00:00 2001 From: ialina07 Date: Fri, 17 Oct 2025 14:21:17 +0000 Subject: [PATCH] =?UTF-8?q?=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB?= =?UTF-8?q?=D0=B0=20=D1=80=D0=B5=D1=88=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BA?= =?UTF-8?q?=D0=BE=D0=BD=D1=82=D1=80=D0=BE=D0=BB=D1=8C=D0=BD=D0=BE=D0=B9=20?= =?UTF-8?q?=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/kr1/n1.c | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++ src/kr1/n3.c | 41 +++++++++++++++++++++++++++++++++++++ 2 files changed, 99 insertions(+) create mode 100644 src/kr1/n1.c create mode 100644 src/kr1/n3.c diff --git a/src/kr1/n1.c b/src/kr1/n1.c new file mode 100644 index 0000000..676d4fa --- /dev/null +++ b/src/kr1/n1.c @@ -0,0 +1,58 @@ +#include +#include +#define MAX_SIZE 100 + +int sumNumbers(int a); + +int main() +{ + int m[MAX_SIZE]; + int n; + printf("Введите длину массива: "); + scanf("%d", &n); + + if (n <= 0 || n > MAX_SIZE) { + printf("Неверный размер массива!\n"); + return 1; + } + + printf("Введите %d элементов\n", n); + for (int i = 0; i < n; i++) { + printf("Элемент %d: ", i + 1); + scanf("%d", &m[i]); + } + + int mx = -1; // Максимальная сумма цифр + int ch = m[0]; // Число с максимальной суммой цифр + + for (int i = 0; i < n; i++) { + int currentSum = sumNumbers(m[i]); + if (currentSum > mx) { + mx = currentSum; + ch = m[i]; + } + } + + printf("Число с максимальной суммой цифр: %d (сумма цифр: %d)\n", ch, mx); + return 0; +} + +int sumNumbers(int a) +{ + int res = 0; + char s[20]; + + // Работаем с абсолютным значением числа + int n = a < 0 ? -a : a; + + // Преобразуем число в строку + sprintf(s, "%d", n); + int len = strlen(s); + + // Суммируем цифры + for (int i = 0; i < len; i++) { + res = res + (s[i] - '0'); + } + + return res; +} diff --git a/src/kr1/n3.c b/src/kr1/n3.c new file mode 100644 index 0000000..79dafd1 --- /dev/null +++ b/src/kr1/n3.c @@ -0,0 +1,41 @@ +#include +#include + +bool isBinaryPalindrome(int n) +{ + int highBit = 0; + int temp = n; + + while (temp > 0) { + highBit++; + temp >>= 1; + } + + for (int i = 0; i < highBit / 2; i++) { + int leftBit = (n >> (highBit - 1 - i)) & 1; + int rightBit = (n >> i) & 1; + if (leftBit != rightBit) + return false; + } + + return true; +} + +int main() +{ + int n; + + printf("Введите n: "); + scanf("%d", &n); + + printf("Палиндромы [1; %d]: ", n); + + for (int i = 1; i <= n; i++) { + if (isBinaryPalindrome(i)) { + printf("%d ", i); + } + } + + printf("\n"); + return 0; +}