Некоторый алгоритм из одной цепочки символов получает новую цепочку следующим образом. Сначала вычисляется длина исходной цепочки символов; если она нечётна, то дублируется средний символ цепочки символов, а если четна, то в начало цепочки добавляется буква С. В полученной цепочке символов каждая буква заменяется буквой, следующей за ней в русском алфавите (А — на Б, Б — на В и т. д., а Я — на А). Получившаяся таким образом цепочка является результатом работы алгоритма.
Например, если исходной была цепочка КОТ, то результатом работы алгоритма будет цепочка ЛППУ, а если исходной была цепочка ВАНЯ, то результатом работы алгоритма будет цепочка ТГБОА.
Дана цепочка символов ЛАК. Какая цепочка символов получится, если к данной цепочке применить описанный алгоритм дважды (т. е. применить алгоритм к данной цепочке, а затем к результату вновь применить алгоритм)? Русский алфавит: .
begin
var a,b,c:integer;
Write('Введите три натуральных числа: '); Read(a,b,c);
var s:=a+b+c;
var k:=Trunc(sqrt(s));
if k*k=s then Writeln('Сумма чисел - квадрат ',k)
else Writeln('Сумма чисел не является квадратом целого')
end.
Тестовое решение
Введите три натуральных числа: 13 4 8
Сумма чисел - квадрат 5
// PascalABC.NET 3.1, сборка 1230 от 27.04.2016 - №2
begin
var a,b,c:integer;
Write('Введите три натуральных числа: '); Read(a,b,c);
var s:=power(a*b*c,1/3);
if s=int(s) then Writeln('Среднее геометрическое - целое число')
else Writeln('Среднее геометрическое - нецелое число')
end.
Тестовое решение
Введите три натуральных числа: 16 8 15
Среднее геометрическое - нецелое число
#include <iostream>
#include <ctime>
using namespace std;
int main(){
srand(time(NULL));
int ma[5][10];
int maxn=0;
double s=0;
double max=-2147483647;
for(int i=0;i<10;i++)
for(int j=0;j<5;j++)
ma[i][j]=rand()%2;
for(int j=0;j<5;j++){
for(int i=0;i<10;i++)
s=s+ma[i][j];
if(s>max){max=s; maxn=j;}
s=0;}
cout<<"Matrix"<<endl;
for(int i=0;i<10;i++){
for(int j=0;j<5;j++)
cout<<ma[i][j]<<" ";
cout<<endl;}
cout<<maxn+1;
cin.get();
cin.get();
return 0;
}