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

Напишите программу по тексту в паскале или на си+++ или на питоне пусть дана последовательность чисел a1, : , an, состоящая из 0 и 1. пару чисел (ai, aj), таких что i < j, j - i = k и ai ¹ aj, назовем неправильной. индексом неправильности последовательности (инп) назовем количество неправильных пар (ai, aj) в ней. инп легко посчитать за один проход по массиву, в котором хранятся элементы последовательности: переберем все i от 1 до n - k и сравним их с соответствующими j = i + k. если инп равен 0, то ответ в ok и никаких чисел менять в ней не нужно. иначе для каждого из элементов последовательности найдем инп после изменения этого элемента. при изменении одного числа в последовательности нулей и единиц может измениться только правильность пар (ai-k, aj) и (ai, ai+k), если они, конечно, существуют. дело в том, что i - k может быть меньше 1, или i + k - больше n. в этих случаях соответствующая пара отсутствует. значит в результате изменения одного числа, инп может измениться на -2, -1, 0, +1 или +2. если в результате изменения какого-то из чисел инп станет равным 0 - то ответ ok и номер измененного элемента, иначе - ответ fail. данный алгоритм работает за линейное относительно длины последовательности время.

👇
Открыть все ответы
Ответ:

Важное замечание: Для типа long long int требуется от компилятора поддержка стандарта C99.

Приложил файл расширения .cpp, чтобы обойти ограничение сайта. При работе с кодом измените на .c

#include <stdio.h>


long long int NOD(long long int var1, long long int var2) //Алгоритм Евклида

{

   while(var1 != var2)

   {

       if(var1 > var2)

           var1 = var1 - var2;

       else var2 = var2 - var1;

   }

   return var1;

}

long long int NOK(long long int var1, long long int var2)

{

   return (var1 * var2) / NOD(var1, var2);

}

int main()

{

   long long int N, K;

   scanf("%lli%lli", &N, &K);


   printf("Количество оборотов: %lli\n", NOK(N, K));


}


Даны две сцепленные шестеренки. у одной шестеренки n зубцов, у другой – k. требуется найти, какое ми
4,8(6 оценок)
Ответ:

Если мы разделим некоторое целое число P на целое число N, то получим целое число r и целый остаток s. Тогда можно записать, что P = r × N + s.

Вспомним, что для перевода числа P в систему счисления по оcнованию N мы последовательно делим P на N до тех пор, пока P ≥ N и выписываем остатки, а потом записываем эти остатки в обратном порядке. Следовательно, первый из полученных остатков будет последней цифрой числа P в системе по основанию N.

P_N=r_N\times N+s_N

Переведем 139 в систему счисления по основанию 8.

139 / 8 = 17, остаток 3

17 / 8 = 2, остаток 1

2 / 8 = 0, остаток 2

Выписываем остатки в обратном порядке: 213. Как и ожидалось, последняя цифра полученного числа и есть остаток от деления числа на основание системы счисления.

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