Для кодирования букв О, В, Д, П, А решили использовать двоичное представление чисел 0, 1, 2, 3 и 4 соответственно (с сохранением одного незначащего нуля в случае одноразрядного представления). Запишите, что получится, если закодировать последовательность букв ВОДАВП таким и результат записать восьмеричным кодом.
// Внимание! Если программа не работает, обновите версию!
begin
var (s,k,p,mx,mn):=(0,0,BigInteger(1),-30001,30001);
ReadSeqIntegerWhile(t->t<>0).Where(t->(t>0) and (t mod 5=0))
.Foreach(t->begin s+=t; k+=1; p*=t; mx:=Max(mx,t); mn:=Min(mn,t) end);
Writeln('S=',s,', K=',k,', П=',p,', min=',mn,', max=',mx)
end.
Пример
9095 -15199 5068 5310 2534 1136 11454 -17910 3480 -23949 24356 -5077 27301 -25057 -5789 24995 -16013 -5246 -5168 16256 17565 -24551 -229 22412 -3274 20445 3399 -11620 -21875 -18607 0
S=80890, K=6, П=1508567956180663412250000, min=3480, max=24995
#include <stdio.h>
#include <windows.h>
int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
int const n=3;
int mas[n][n];
int sum1, sum2;
bool magik;
for (int i=0; i<n; i++)
for (int j=0; j<n; j++)
{
printf("mas[%d][%d] = ", i+1, j+1);
scanf("%d",&mas[ i ][ j ]);
}
printf("\nВведенная матрица:\n");
for (int i=0; i<n; i++)
{
for (int j=0; j<n; j++)
{
printf("%d ",mas[ i ][ j ]);
}
printf("\n");
}
sum1=0;
sum2=0;
for (int i = 0; i<n; i++)
{
sum1 += mas[ i ][ i ];
sum2 += mas[ i ][ n-1-i ];
}
printf("Сумма главной диагонали = %d\n", sum1);
printf("Сумма побочной диагонали = %d\n", sum2);
magik = true;
for (int i=0; i<n; i++)
{
if (sum1==sum2)
{
sum2=0;
for (int j=0; j<n; j++)
{
sum2 += mas[ i ][ j ];
}
} else { magik=false; break; }
}
if (magik==true)
{
for (int i=0; i<n; i++)
{
if (sum1==sum2)
{
sum2=0;
for (int j=0; j<n; j++)
{
sum2 += mas[ j ][ i ];
}
}
else { magik=false; break; }
}
}
if (magik==true)
printf("\nМатрица является магическим квадратом\n");
else
printf("\nМатрица не является магическим квадратом\n");
system("pause");
return 0;
}