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; +}