М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
riad170310
riad170310
29.01.2022 07:52 •  Информатика

Мир охватила эпидемия воспаления хитрости! ученым удалось выделить днк из трех вероятно зараженных клеток. днк каждой из клеток состоит из последовательности азотистых оснований, каждое из которых закодировано буквой a, g, t или c. вирус также описывается последовательностью азотистых оснований и эта последовательность встраивается в произвольное место днк клетки. чтобы выделить вирус, необходимо найти самую длинную последовательность подряд идущих азотистых оснований, которая встречается в днк всех трех зараженных клеток. формат входных данных во входных данных задается три строки, состоящих из символов a, g, t и c, описывающих днк зараженных клеток. длина строк не превосходит 100. формат результата выведите описание вируса. если возможных вариантов несколько — выведите любой.

👇
Ответ:
bugaerstasy
bugaerstasy
29.01.2022

Решал эту штуку на с++.

И я думаю это самый норм язык для этого, потому что я перебирал

Кстати, если мой учитель это читает, я сам сделал эту штуку!


#include <iostream>

#include <string>

#include <algorithm>

#include <vector>

using namespace std;

int main()

{

   string a,b,c,mi;

   int y = 0;

   cin >> a >> b >> c;

   vector <string> z;

   if (a.length() <= b.length() && a.length() <= c.length()){

       mi = a;

   }

   else if (b.length() <= a.length() && b.length() <= c.length()){

       mi = b;

   }

   else{

       mi = c;

   }

   for (int i = 1;i <= mi.length();i++){

       y = 0;

       for (int l = 0;l < mi.length() - i + 1;l++){

           string s;

           for (int j = 0;j < i;j++){

               s = s + mi[l + j];

           }

           if (a.find(s) != std::string::npos && b.find(s) != std::string::npos && c.find(s) != std::string::npos){

               z.push_back(s);

               y = 1;

               break;

           }

       }

       if (y == 0){

           break;

       }

   }

   cout << z[z.size() - 1];

   return 0;

}

4,5(30 оценок)
Открыть все ответы
Ответ:
Катюха808
Катюха808
29.01.2022

var

a,b:string;

i:integer;

begin

readln(a);

readln(b);

For i:=1 to Length(a) do

 begin

 if (a[i]='3') then

 Begin

   Delete(a,i,1);

   InSert('e',a,i);

 End;

 if (a[i]='0') then

 Begin

   Delete(a,i,1);

   InSert('o',a,i);

 End;

 if (a[i]='1') then

 Begin

   Delete(a,i,1);

   InSert('i',a,i);

 End;

 if (a[i]='7') then

 Begin

   Delete(a,i,1);

   InSert('t',a,i);

 End;

 if (a[i]='4') then

 Begin

   Delete(a,i,1);

   InSert('a',a,i);

 End;

 if (a[i]='5') then

 Begin

   Delete(a,i,1);

   InSert('s',a,i);

 End;

 end;

if b in a then

 writeln('YES')

else

 writeln('NO')

end.

4,4(28 оценок)
Ответ:
astanina042
astanina042
29.01.2022

// Форматирование вывода вещественного числа можно поставить как нравится, я выбрал 3:3

// Считал, что доля с участием нуля равна 0%

program Calc;

var a, b: integer;

begin

 write('Введите a: ');

 readln(a);

 

 write('Введите b: ');

 readln(b);

 

 writeln(a, '+', b, '=', a + b);

 writeln(a, '-', b, '=', a - b);

 writeln(a, '*', b, '=', a * b);

 

 if (b = 0) then begin

   writeln(a, '/', b, ' не определено');

   writeln(a, ' составляет 0% от числа ', b);

 end

 else begin

   writeln(a, '/', b, '=', (a / b):3:3);

   writeln(a, ' составляет ', (a / b * 100):3:3, '% от числа ', b);

 end;

 

 if (a = 0) then

   writeln(b, ' составляет 0% от числа ', a)

 else

   writeln(b, ' составляет ', (b / a * 100):3:3, '% от числа ', a);

end.

4,8(65 оценок)
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ