На бесконечном поле имеется горизонтальная стена бесконечно продолжающаяся левый заканчивающася лестнице которая поднимается слева направо высота каждой ступени одна клетка ширина три клетки робот находится на горизонтальной стены лестницы на рисунке указан один из возможных расположения лестницей робота
1) хитрый петя составил новую табличку и файл занял 2304 байта, так как юникод символ состоит из 2 байт (16 бит) составим соотношение для выяснения размера кода символа в его таблице:
4096/2304 = 16/х, отсюда
х = 9, т. е. для кодирования символа в таблице хитрого пети отводится 9 бит и всего можно накодировать 512 разных символов
2) неменее хитрый вася решил так - половина текста при 9 бит символе - 2304/9*2 = 128 симолов, он закодировал по новой таблице, для чего ему понадобилось 7 бит на символ, т. к 2 в 7 степени есть 128 а это и есть четверть от полного набора петиной таблицы.
теперь файл стал занимать 2304/2 + 7*128 = 1152 + 896 = 2048 байт,
таков размер итогового файла!
C++Выделить код
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# include <iostream>
# include <stdlib.h>
# include <time.h>
using namespace std;
//ф-я вывод массива
int* array (int* arr, int arr_size)
{
for (int i=0; i<arr_size; i++)
cout<<"Array="<<arr[i]<<endl;
}
// ф-я поиска наибольшего эл-та
int* searchnmax(int* arr, int arr_size, int max_count)
{
// временный элемент, с которым сравниваются эл-ты массива
int n=0;
for (int j=0; j<arr_size; j++)
{
if (arr[j]<max_count)
{
if (n<arr[j]) n=arr[j];
}
}
return ;
}
void main ()
{
srand (time(NULL));
const int arr_size=10;
int* arr=new int[arr_size];
int* max;
//кол-во наибольших чисел
int k=0;
for (int i=0;i<arr_size; i++)
arr[i]=rand()%100;
array (&arr[0], arr_size);
cout<<"Please enter number less than"<<arr_size<<"of max elements you would like to print out"<<endl;
cin>>k;
searchnmax(arr,arr_size,100);
for (int i=0; i<k; i++)
max[i]=searchnmax(arr, arr_size,k(i-1));
array (max,k);
delete[] arr;
}