1 задачу напишите на каком языке программирования вы писали: D. Равенство строк
Ограничение времени 1 секунда
Ограничение памяти 64.0 Мб
Ввод стандартный ввод или input.txt
Вывод стандартный вывод или output.txt
Вася получил две строки
s
s и
t
t длины
n
n каждая. Он хочет написать программу, которая проверит, равны ли эти строки.
Язык программирования, на котором пишет Вася, не имеет инструкции для сравнения строк, зато разрешает проверить два символа на равенство. Вася планирует брать произвольный индекс
i
i, не встречавшийся ранее, после чего проверять на равенство символы
s
i
s
i
и
t
i
t
i
. Как только Вася встретит пару различных символов, он прервет выполнение программы, потому что строки уже гарантированно не равны друг другу. Если все индексы были рассмотрены, программа Васи заканчивает выполнение.
От вас требуется определить, через сколько шагов программа Васи гарантированно остановится.
Формат ввода
В двух строках вводятся строки
s
,
t
s,t из строчных латинских букв
(
1
≤
∣
s
∣
,
∣
t
∣
≤
1000
)
(1≤∣s∣,∣t∣≤1000) , где
∣
s
∣
∣s∣ - длина строки
s
s.
Формат вывода
Выведите одно число -− максимальное число шагов, которое сделает программа Васи.
Пример
Ввод Вывод
abcd
axcx
3
Примечания
В примере программа Васи может сделать три шага, если проверит на равенство сначала символы « a» , потом символы « c», а потом остановится после проверки пары символов « b» или « x»
Объяснение:
Если и считать всё в двоичной системе, то надо сначала все числа перевести в неё.
Перевод из шестнадцатеричной в двоичную- каждая шестнадцатеричная цифра заменяется на четыре двоичных, затем незначащие нули спереди- отбрасываются:
10₁₆ = 00010000₂ = 10000₂
Перевод из восьмеричной в двоичную- каждая восьмеричная цифра заменяется на три двоичных, затем незначащие нули спереди- отбрасываются:
10₈ = 001000₂ = 1000₂
Получаем в итоге пример:
10000₂ + 1000₂ + 10₂* 10000₂ = 10000₂ + 1000₂ + 100000₂ =
= 111000₂
ЯП: С++
#include <iostream>
int main() {
const int N = 5;
int arr[N][N] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25}; // создаем и заполняем двумерный массив 5x5
for (int i = 0; i < N; i++) // выводим на экран 2-мерный массив;
{
for (int j = 0; j < N; j++)
{
std::cout << arr[i][j] << "\t";
}
std::cout << std::endl;
}
std::cout << "Result #1: ";
for (int i = 0; i < N; i++) // вывод в консоль главной диагонали
{
std::cout << arr[i][i] << "\t";
}
std::cout << "\nResult #2: ";
for (int i = 0; i < N; i++) // вывод в консоль побочной диагонали
{
std::cout << arr[i][N - 1 - i] << "\t";
}
return 0;
}
Объяснение: