16*8 = 128 вариантов местонахождения книги. Из этого количества вариантов необходимо выбрать один. Следовательно, N = 128, а I = 7, т.к. 128 = 27.
Решение 1-й задачи:
//PascalABC.Net
//NaaMan
var
i, n : integer;
begin
i := 0;
repeat
write('Введите число > ');
readln(n);
if (n > 0) then
if (n mod 2 = 0) then
if (n mod 3 = 0) then i := i + 1;
until (n = 0);
writeln('Количество чётных чисел, кратных 3: ', i)
end.
Для решения второй задачи нужно заменить (n mod 2 = 0) на (n mod 2 = 1) и (n mod 3 = 0) на (n mod 7 = 0).
#include <iostream>
#include <cstdlib>
// содержит srand() и rand()
#include <ctime>
using namespace std;
int main()
{
int n=10;
<span> int mas[n] = {};
</span><span> int tmp,j=0;
</span><span> cout<<"random number";
cout<<endl;
</span>// начальная установка генератора случ. чисел
srand(time(NULL));
<span>// заполнение массива случайными числами
</span><span> for (int i = 0; i < n; i++)</span><span>
{
</span><span> mas[i] = rand()/100; cout<<mas[i]<<" ";
</span><span> }</span><span>
cout<<endl;
</span>// перестановка элементов
<span>for (int i = 0; i < n/2; i++)
</span> {<span>
tmp=mas[i];</span><span> mas[i]=mas[2*(i+1)-1];</span><span> j=2*i;
</span> while (j>i)<span>
{</span><span>
mas[j+1]=mas[j];</span><span> j--;
</span><span> }
</span> mas[i+1]=tmp;
<span> }
</span><span>//"массив после замены"
</span><span> for (int i = 0; i < n; i++) </span><span> cout<<mas[i]<<" ";</span><span>
</span><span> cout<<endl;
</span><span> system("pause");
</span><span> return 0;
</span>}
<span>
</span>
Общее количество символов: 8*40*64.
Для 1 символа используется: 25*1024*8/(8*40*64) бит = 10 бит
24л 13л 11л 5л - емкость бочек
далее пойдут количества воды в каждой из бочек после каждого перливания
0 13 11 0
0 13 6 5
6 13 0 5
6 13 5 0
6 8 5 5
0 8 11 5
8 0 11 5
8 11 0 5
8 13 3 0
8 8 3 5
<u>8 8 8 0</u>