Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions hw2/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
cmake_minimum_required(VERSION 3.25)

project(hw2 C)

add_executable(formula_for_2_multi formula_for_2_multi.c)

add_executable(incom_priv incom_priv.c)

add_executable(lucky_tick lucky_tick.c)

add_executable(rerran_segm rerran_segm.c)
16 changes: 16 additions & 0 deletions hw2/formula_for_2_multi.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
#include <stdio.h>

int main(int argc, char** argv)
{
int x = 0;
printf("Введите значение x: ");
scanf("%d", &x);

// квадрат числа
int t = x * x;

// сама формула
int formula = (t + 1) * (t + x) + 1;
printf("%d\n", formula);
return 0;
}
45 changes: 45 additions & 0 deletions hw2/incom_priv.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
#include <stdio.h>

int main(int argc, char** argv)
{
int a = 0;
int b = 0;
printf("Введите число a: ");
scanf("%d", &a);
printf("Введите число b: ");
scanf("%d", &b);

if (b == 0) {
printf("Неполное частное от деления целого числа на ноль не определено\n");
return 0;
}
if (a == 0) {
printf("Неполное частное: 0");
return 0;
}
// счетчик для неполного частного
int incomp = 0;

// коэф прибавляемый к счетчику
int count = 1;

if (a < 0) {
a *= -1;
count *= -1;
incomp -= 1;
}
if (b < 0) {
b *= -1;
count *= -1;
incomp *= -1;
}

// вычитаем из a число b до тех пор пока b не станет больше а. И прибавляем к счетчику 1 или -1.
while (a > b) {
a = a - b;
incomp += count;
}

printf("Неполное частное: %d\n", incomp);
return 0;
}
20 changes: 20 additions & 0 deletions hw2/lucky_tick.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
#include <math.h>
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char** argv)
{
int array[28] = { 0 };

for (int num = 0; num < 1000; num++) {
int sumNumber = (num / 10 % 10) + num / 100 + num % 10;
array[sumNumber]++;
}

int sum = 0;
for (int ind = 0; ind < 28; ind++) {
sum += (array[ind] * array[ind]);
}
printf("Количество счасливых билетов: %d\n", sum);
return 0;
}
37 changes: 37 additions & 0 deletions hw2/rerran_segm.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char** argv)
{
int m = 0;
int n = 0;
printf("Введите длину начала: ");
scanf("%d", &m);
printf("Введите длину конца: ");
scanf("%d", &n);

// создание динамического массива
int lenght = m + n;
int* list = (int*)malloc(lenght * sizeof(int));
for (int i = 1; i < m + n + 1; i++) {
list[i - 1] = i;
}

// сдвиг отрезка m на 1 n раз
// каждый следущий элемент после отрезка m передвигает в начало массива
for (int step1 = 0; step1 < n; step1++) {
for (int step2 = m + step1; step2 > step1; step2--) {
int temprery = list[step2];
list[step2] = list[step2 - 1];
list[step2 - 1] = temprery;
}
}

// вывод массива
for (int i = 0; i < lenght; i++) {
printf(" %d", list[i]);
}
printf("\n");
free(list);
return 0;
}