При угадывании целого числа в диапазоне от 1 до N было получено 2 бита информации. Чему равно N?4Сколько страниц текста уместится на дискету объемом 1,44 Мб, если 1 страница занимает 2 Кб?
Решение, что называется, "в лоб" (далеко, очень далеко, не самое лучшее): var s,k1,k5,k10,k50,k100,k500,k1000,k10000:integer; begin write('s = '); readln(s); k1:=0; k5:=0; k10:=0; k50:=0; k100:=0; k500:=0; k1000:=0; k10000:=0; while s>=10000 do begin s:=s-10000; k10000:=k10000+1; end; while s>=1000 do begin s:=s-1000; k1000:=k1000+1; end; while s>=500 do begin s:=s-500; k500:=k500+1; end; while s>=100 do begin s:=s-100; k100:=k100+1; end; while s>=50 do begin s:=s-50; k50:=k50+1; end; while s>=10 do begin s:=s-10; k10:=k10+1; end; while s>=5 do begin s:=s-5; k5:=k5+1; end; while s>=1 do begin s:=s-1; k1:=k1+1; end; writeln('k10000=',k10000,' k1000=',k1000,' k500=',k500,' k100=',k100,' k50=',k50,' k10=',k10,' k5=',k5,' k1=',k1); writeln(' Всего купюр = ',k1+k5+k10+k50+k100+k500+k1000+k10000); end.
Пример: s = 27879 k10000=2 k1000=7 k500=1 k100=3 k50=1 k10=2 k5=1 k1=4 Всего купюр = 21
// PascalABC.NET 3.1, сборка 1250 от 28.05.2016 begin var a:=-1.32; var b:=1.49; var h:=0.11; var y1:=-14.0; var y2:=17.0; var k:=0; var x:=a; while x<=b do begin var y:=Tan(x); if (y>=y1) and (y<=y2) then begin Writeln('x=',x:5:2,' y=',y:7:4); Inc(k) end; x+=h end; Writeln('Найдено значений: ',k) end.
var s,k1,k5,k10,k50,k100,k500,k1000,k10000:integer;
begin
write('s = '); readln(s);
k1:=0; k5:=0; k10:=0; k50:=0;
k100:=0; k500:=0; k1000:=0; k10000:=0;
while s>=10000 do begin s:=s-10000; k10000:=k10000+1; end;
while s>=1000 do begin s:=s-1000; k1000:=k1000+1; end;
while s>=500 do begin s:=s-500; k500:=k500+1; end;
while s>=100 do begin s:=s-100; k100:=k100+1; end;
while s>=50 do begin s:=s-50; k50:=k50+1; end;
while s>=10 do begin s:=s-10; k10:=k10+1; end;
while s>=5 do begin s:=s-5; k5:=k5+1; end;
while s>=1 do begin s:=s-1; k1:=k1+1; end;
writeln('k10000=',k10000,' k1000=',k1000,' k500=',k500,' k100=',k100,' k50=',k50,' k10=',k10,' k5=',k5,' k1=',k1);
writeln(' Всего купюр = ',k1+k5+k10+k50+k100+k500+k1000+k10000);
end.
Пример:
s = 27879
k10000=2 k1000=7 k500=1 k100=3 k50=1 k10=2 k5=1 k1=4
Всего купюр = 21
begin
var a:=-1.32;
var b:=1.49;
var h:=0.11;
var y1:=-14.0;
var y2:=17.0;
var k:=0;
var x:=a;
while x<=b do begin
var y:=Tan(x);
if (y>=y1) and (y<=y2) then begin
Writeln('x=',x:5:2,' y=',y:7:4);
Inc(k)
end;
x+=h
end;
Writeln('Найдено значений: ',k)
end.
Результат
x=-1.32 y=-3.9033
x=-1.21 y=-2.6503
x=-1.10 y=-1.9648
x=-0.99 y=-1.5237
x=-0.88 y=-1.2097
x=-0.77 y=-0.9697
x=-0.66 y=-0.7761
x=-0.55 y=-0.6131
x=-0.44 y=-0.4708
x=-0.33 y=-0.3425
x=-0.22 y=-0.2236
x=-0.11 y=-0.1104
x= 0.00 y= 0.0000
x= 0.11 y= 0.1104
x= 0.22 y= 0.2236
x= 0.33 y= 0.3425
x= 0.44 y= 0.4708
x= 0.55 y= 0.6131
x= 0.66 y= 0.7761
x= 0.77 y= 0.9697
x= 0.88 y= 1.2097
x= 0.99 y= 1.5237
x= 1.10 y= 1.9648
x= 1.21 y= 2.6503
x= 1.32 y= 3.9033
x= 1.43 y= 7.0555
Найдено значений: 26