Прога А на ABCPaskal^
Progaram sdaef;
var S, i: real;
label cikl;
S:=0;
i:=10;
if i>5 then begin
cikl:
S:=S+i;
i:= i-1
If i> 5 then goto cikl;
else
writeln (S);
end;
end.
Var A,B,N:integer;
S:real;
Begin
A:=0;
B:=1;
Write('N = ');
ReadLn(N);
if N<0 then Write('Введите положительное число')
else
Begin
While A<N do
Begin
S:=S+A;
A:=A+B;
Swap(A,B);
Write(A,' ');
End;
WriteLn;
WriteLn('S = ',S)
End;
End.
Пример:
N = 10000
1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 10946
S = 17710
Примечание:
Условие немного некорректно, т.к.
1+1+2+3+5+8+13+21+34+55+89+144+233+377+610+987+1597+2584+4181+6765 = 17710.
32 бита=4 байта, на адрес 3 байта=256³ =16МБ (МегаБайт, Мега двоичное = 1024*1024) Ответ 16 МБ
Нужно 8 бит. 129 словам присваиваем номера от 0 до 128 в десятичной системе. 0(10)=0(2), 128(10)=10000000(2). Если словам присваивать номера от 1 до 129, то понадобится тоже 8 бит, только 129(10)=10000001(2)
Для перевода можно пользоваться простым методом
129/2 = 64 с остатком, записываем 1
64/2 =32 без остатка, записываем 0
32/2 =16 без остатка, записываем 0
16/2 =8 без остатка, записываем 0
8/2 =4 без остатка, записываем 0
4/2 =2 без остатка, записываем 0
2/2 =1 без остатка, записываем 0
1/2 =0 с остатком, записываем 1
Т.е. делим каждое частное на 2 и записываем наличие остатка в конец двоичной записи в виде остаток есть-1, остатка нет-0. Деленим до тех пор, пока в частном не будет 0. Результат записывается справа налево.