Делается это очень просто (хотя довольно занудно и однообразно).
Обозначим через m количество единиц, а через n - количество двоек.
В цикле m и n изменяются следующим образом:
n=n-3
m=m+1
m=m-3
n=n+1
Итого: m=m-2; n=n-2. То есть и m и n уменьшаются на 2.
m и n - нечетные, n-m=100. Следовательно, через некое количество вычислений, последовательно уменьшаясь на 2, m примет значение 3, а n - значение 103.
n=n-3=103-3=100
m=m+1=3+1=4
m=m-3=4-3=1
n=n+1=100+1=101
Теперь цепочки их трех единиц нет. До тех пор, пока цепочка из трех единиц не образуется, операции m=m-3 и n=n+1 мы, по условию, не производим. Повторим несколько вычислений в цикле.
n=n-3=101-3=98
m=m+1=1+1=2
возвращаемся к началу цикла
n=n-3=98-3=95
m=m+1=2+1=3
m=m-3=3-3=0
n=n+1=95+1=96
возвращаемся к началу цикла
n=n-3=96-3=93
m=m+1=0+1=1
Значения m=1 и n=101 изменились на m=1 и n=93.
То есть m как было, так и осталось равным единице, а n уменьшилось на 8.
8*[101/8]=8*12=96
101-96=5
То есть, через некоторое количество вычислений, мы придем к следующим значениям: m=1 и n=5
Далее получаем:
n=n-3=5-3=2
m=m+1=1+1=2
Поскольку строка из трех двоек больше не находится, цикл завершается.
На выходе получаем строку из двух единиц и двух двоек.
Так как изначально в задании указано : "на любом известном вам языке программирования" - вот, держи на С.
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#define N 100
int main()
{
setlocale(LC_ALL, "Rus");
int i, M;
float B[N], MIN;
printf(" Введите количество элементов массива (не больше 100) => ");
scanf("%d", &M);
if (M < 100)
{
for (i = 0; i < M; i++)
{
printf("Введите [%d] элемент массива =>", i);
scanf("%f", &B[i]);
}
for (i = 0; i < M; i++)
printf("%1.0f ", B[i]);
MIN=B[0];
for (int i=1; i<M; i++)
{
if (B[i]<MIN)
MIN=B[i];
}
printf ("\n\tМинимальное значение в массиве => %7.2f", MIN);
}
else
printf("Ошибка. Заданное число элементов массива слишком большое.");
return 0;
}
Поделитесь своими знаниями, ответьте на вопрос:
1. сообщение , записанное буквами из 64-символьного алфавита , содержит 85 символов. какой обьем информации оно несет ?
ответ 21 символ