diff --git a/src/evenFibonacci.c b/src/evenFibonacci.c new file mode 100644 index 0000000..2a346e6 --- /dev/null +++ b/src/evenFibonacci.c @@ -0,0 +1,28 @@ +#include + +// рекурсивная функция просто считающая числа фиббоначи, принимает номер числа +// возвращает число фибоначчи +int fibonacci(int n) { + if (n == 0 || n == 1) { + return n; + } + return fibonacci(n - 1) + fibonacci(n - 2); +} + +int main() { + int summ = 0; + // временная переменная, она будет содержать в себе числа фибоначчи + int tmp = 0; + // номер числа фибоначчи + // первый номер равен 0, так что его можно не считать отдельно + int number = 1; + while (tmp <= 1000000) { + if ((tmp % 2) == 0) { + summ += tmp; + } + number++; + tmp = fibonacci(number); + } + printf("%d\n", summ); + return 0; +} diff --git a/src/palindromTask.c b/src/palindromTask.c new file mode 100644 index 0000000..be9530b --- /dev/null +++ b/src/palindromTask.c @@ -0,0 +1,46 @@ +#include +#include +#include + +bool palindrom(char *line, int counter) { + if ((counter % 2) == 0) { + for (int i = 0; i < (counter / 2); i++) + if (line[i] != line[counter - i - 1]) { + return false; + } + } else { + for (int i = 0; i < (counter / 2); i++) + if (line[i] != line[counter - i - 1]) { + printf("%c %c\n", line[i], line[counter - i - 1]); + return false; + } + } + return true; +} + +int main() { + printf("Введите число символов, которое хотите ввести, завершите ввод нажав " + "enter\n"); + printf("На след строке введите строку и завершите ввод enter\n"); + int len = 0; + scanf("%d", &len); + getchar(); + char *arrayWithString = malloc(len * sizeof(char)); + // счетчик чтобы считать кол-во не пробелов + int counter = 0; + for (int i = 0; i < len; i++) { + char tmp = ' '; + scanf("%c", &tmp); + if (tmp != ' ') { + arrayWithString[counter] = tmp; + ++counter; + } + } + if (palindrom(arrayWithString, counter)) { + printf("Строка является палиндромом\n"); + } else { + printf("Строка не является палиндромом\n"); + + return 0; + } +}