Var i,j,k:integer;
begin
for i:=1 to 9 do
for j:=0 to 9 do
for k:=0 to 9 do
if ((i*100+j*10+k) div 11) = (i*i+j*j+k*k)
then writeln(i*100+j*10+k);
end.
Результат:
131
241
324
550
624
803
900
910
Если требуется деление на 11 без остатка, то:
var i,j,k:integer;
begin
for i:=1 to 9 do
for j:=0 to 9 do
for k:=0 to 9 do
if ((i*100+j*10+k) mod 11) = 0 then
if ((i*100+j*10+k) div 11) = (i*i+j*j+k*k)
then writeln(i*100+j*10+k);
end.
Результат:
<span>550
803</span>
<span>количеством операций в секунду</span>
Запишем условие задачи:
Поскольку в сообщениях одинаковое количество символов, то К1=К2. Соотношение количества информации можно записать как I1=1.5*I2. Общее кол-во символов в алфавите обозначается буквой N, по условию N1<=10, N2<=10.
Решение: I1=K1*i1; I2=K2*i2; Подставим в условие I1=1.5*I2 значения I1 и I2. Получаем K1*i1=1.5*K2*i2
Сократим в обеих частях уравнения К1 и К2, у нас останется
i1=1.5*i2
По условию мощности обоих алфавитов не превышают число 10, запишем это так
10>=2 в степени i1
10>=2 в степени i2
Предположим, что i2=1 бит, тогда i1=1.5 бита (а это противоречит условию)
Предположим, что i2=2 бита, тогда i1=3 бита -это и есть ответ задачи
#include <iostream>
<span>using namespace std;
</span>void mxd(int n) {
<span> int k,mx=0;
</span><span> do {
</span><span> k=n%10; n/=10;
</span><span> if (k>mx) mx=k;
</span><span> }
</span><span> while (n>0);
</span><span> cout<<mx<<endl;
</span><span>}
</span><span>int main() {
</span><span> int n;
</span><span> cout<<"number: "; cin>>n;
</span><span> mxd(n);
</span><span> </span><span /><span>system("pause");
</span><span> return 0;
</span><span>}
</span><span>
</span>
Var
}
r,d:integer;rar
}
begin
writeln('введи значение радиуса ',r);
readln(r);
d:=r*2;
writeln('диаметр ',d);
end.