Сумма средних цифр может быть равна числу от 0 до 18 сумма крайних цифр может быть равна числу от 1 до 18 (т.к. ерайняя левая цифра не может быть равна нулю, потому тто в противном случае это было бы уже не 4х значное число. Например: 0123)
Так же получившиеся 2 новых числа не могут начинаться с нуля.
Порядок не убывания, значит второе число больше или равно первому.
число 101 могло быть составлено только из 10 и 1, но 1 < 10, значит они расположены в порядке убывания, это нам не подойдёт
20 составлено из 2 и 0, тоже порядок убывания, не подходит
312 составлен либо (3 и 12), либо (31 и 2), но наши два числа не могут быть больше 18 (т.к десятичные цифры от 0 до 9) Значит 312 составлен из 3 и 12 - подходит
Аналогично 1312 состоит из 12 и 13, подходит, т.к 13 >= 12 (пример исходного числа 6766)
А вот 1312 не подойдёт, т.к 12 < 13
1212 - подходит т.к. 12 >= 12 (пример исходного 6666)
112 - это либо 1 и 12, либо 11 и 2. Второй вариант отсекаем, первый подходит (например 1660)
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int *arr;
int x, y, i, j, sum = 0, min = 0, minstr = 0;
srand(time(NULL));
x = 2 + rand() % 10;
y = 2 + rand() % 6;
arr = (int*)malloc(x*y*sizeof(int));
printf("Array %d x %d: \n", x, y);
for (i = 0; i < x; i++){
for (j = 0; j < y; j++){
*(arr + i*y + j) = -50 + rand() % 100;
printf("arr[%d][%d] = %3d; ", i, j, *(arr + i*y + j));
}
printf("\n");
}
for (i = 0; i < y; i++)
min += *(arr + i);
minstr = 0;
for (i = 1; i < x; i++){
for (j = 0; j < y; j++)
sum += *(arr + i*y + j);
if (sum < min) {
min = sum;
minstr = i+1;
}
sum = 0;
}
printf("Minimum amount: %d (%d line)", min, minstr);
free(arr);
return 0;
Объяснение:
это пример как делать
сумма крайних цифр может быть равна числу от 1 до 18 (т.к. ерайняя левая цифра не может быть равна нулю, потому тто в противном случае это было бы уже не 4х значное число. Например: 0123)
Так же получившиеся 2 новых числа не могут начинаться с нуля.
Порядок не убывания, значит второе число больше или равно первому.
число 101 могло быть составлено только из 10 и 1, но 1 < 10, значит они расположены в порядке убывания, это нам не подойдёт
20 составлено из 2 и 0, тоже порядок убывания, не подходит
312 составлен либо (3 и 12), либо (31 и 2), но наши два числа не могут быть больше 18 (т.к десятичные цифры от 0 до 9) Значит 312 составлен из 3 и 12 - подходит
Аналогично 1312 состоит из 12 и 13, подходит, т.к 13 >= 12 (пример исходного числа 6766)
А вот 1312 не подойдёт, т.к 12 < 13
1212 - подходит т.к. 12 >= 12 (пример исходного 6666)
112 - это либо 1 и 12, либо 11 и 2. Второй вариант отсекаем, первый подходит (например 1660)
1012 - подходит
ответ: может получиться 5 чисел из приведенных