Задача сформулирована не корректно, т.к. недостаточно информации о формировании сообщения.
В случае если мы передаём значение 15 то сообщение будет размером 1<span>111 бит.</span>
В худшем случае минимальное сообщение будет иметь размерность 100<span>000 бит
В лучшем случае сообщение может быть представлено как поток 2битных сообщений. Максимальная длина потока будет равна 32 сообщениям. В случае оптимистичного прогноза успех может произойти на первом сообщении. Таким образом мы считаем номер в потоке и значение бита. Если значение == 1 то в этом вагоне находятся друзья.
</span>
#include <stdio.h>
int main()
{
int x,i,n,k=0,ch[100]={0};
printf("n=");
scanf("%d",&n);
printf("%d\n",0);
for(i=1;i<=n;i++)
{
x=i;
while(x!=0)
{
ch[k]=x%3;
x=x/3;
k++;
}
for(x=k-1;x>=0;x--)
{
printf("%d",ch[x]);
ch[x]=0;
}
printf("\n");
k=0;
}
return 0;
}
Первая программа:
Var S,A:integer;
Begin
S:=0;
For A:= 5 to 45 do
if A mod 4 = 0 then S:=S+A;
WriteLn('S = ',S);
End.
Результат работы программы:
S = 260
Вторая программа:
Var A,S:integer;
Begin
S:=0;
For A:= 79 to 205 do
if A mod 2 <> 0 then S:=S+A;
WriteLn('S = ',S);
End.
Результат работы программы:
S = 9088
Третья программа:
Var
x:byte;
Begin
WriteLn('f(x) = x^2');
For x:= 1 to 20 do
WriteLn('f(',x/2:3,') = ',Sqr(x/2))
End.
Результат работы программы:
f(x) = x^2
f(0.5) = 0.25
f( 1) = 1
f(1.5) = 2.25
f( 2) = 4
f(2.5) = 6.25
f( 3) = 9
f(3.5) = 12.25
f( 4) = 16
f(4.5) = 20.25
f( 5) = 25
f(5.5) = 30.25
f( 6) = 36
f(6.5) = 42.25
f( 7) = 49
f(7.5) = 56.25
f( 8) = 64
f(8.5) = 72.25
f( 9) = 81
f(9.5) = 90.25
f( 10) = 100
Var
a, b, c: integer;
begin
readln(a, b, c); //вводим a b c
if a > 0 then writeln(a*a) //если a > 0 вывести квадрат a
else
writeln(a); //иначе вывести a
if b > 0 then writeln(b*b) //если b > 0 вывести квадрат b
else
writeln(b); //иначе вывести b
if c > 0 then writeln(c*c) //если c > 0 вывести квадрат c
else
writeln(c); //иначе вывести c
<span>end.</span>
Дополнительное ПО, суда можно отнести Microsoft word Openoficeorg, Writer и другие