т.к. n заранее не дано(и это все лишь фрагмент кода) то m при разных n будет получаться разный. n лежит в промежутке [-2;8]
потому, что тут m:=(l+r)div 2; при n<-2 получается индекс <0
и при n>8 в цикле индекс >7
а массив у нас всего 8 элементов
Поэтому в цикле я вывел все значения m при всех возможных значениях n
Надеюсь понятно объяснил.
при n=-2 m=0
при n=-1 m=0
при n=0 m=0
при n=1 m=1
при n=2 m=2
при n=3 m=3
при n=4 m=4
при n=5 m=5
при n=6 m=6
при n=7 m=6
при n=8 m=6
Pascal
var
a:array [0..7] of integer = (34, 16, 16, 2, 2, 0, -4, -4);
l, n, m, key, r:integer;
flag:boolean;
begin
for n:=-2 to 8 do begin
key:=-4;
L:=1;
r:=n;
flag:=false;
Repeat
m:=(l+r)div 2;
if a[m]>key then
l:=m+1
else
if a[m]=key then
flag:=true
else
r:=m-1;
until flag or (l>r);
writeln('при n=',n,' m=', m);
end;
end.
#include <iostream>
#include <set>
#include <vector>
using namespace std;
struct book{
int name;
int year;
int k;
};
signed main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
vector<book> ans;
int n;
cin >> n;
for(int i = 0; i < n; i++)
{
book bk;
cin >> bk.name >> bk.year >> bk.k;
if(bk.k >= 2 && bk.k <= 10)
ans.push_back(bk);
}
for(auto i: ans)
cout << i.name << " " << i.year << " " << i.k << "\n";
}
Поделитесь своими знаниями, ответьте на вопрос:
Информационный объем статьи 96 кбайт. сколько страниц займет статья, если на одной странице электронного документа помещается 24 строки по 64 символов, а каждый символ представлен кодировке unicode каждый символ занимает 16 бит памяти
(96 * 1024)/(24*64*2) = 32