Главная /
Основы программирования - обучения основам /
Рассмотрим следующий фрагмент программы: цел m, n; . . . дано: m >= 0 и n >= 0 цел a, b, c; a := m; b := n; c := 1; цикл пока a != 0 и b != 0 | если a четное и b четное | | то a := a / 2; | | b := b / 2; | | c := c * 2; | иначе если a четное | | то
Рассмотрим следующий фрагмент программы:
цел m, n;
. . .
дано: m >= 0 и n >= 0
цел a, b, c;
a := m; b := n;
c := 1;
цикл пока a != 0 и b != 0
| если a четное и b четное
| | то a := a / 2;
| | b := b / 2;
| | c := c * 2;
| иначе если a четное
| | то a := a / 2;
| иначе если b четное
| | то b := b / 2;
| иначе
| | если a > b
| | | то a := a - b;
| | | иначе b := b - a;
| | конец если
| конец если
конец цикла
ответ := c * (a + b);
Какое условие является инвариантом цикла?
(Через НОД и НОК обозначены наибольший общий делитель и
наименьшее общее кратное.)
вопрос
Правильный ответ:
Равенство
НОД(a, b) = НОД(m, n)·c
.
Равенство
НОК(m, n) = c·(a + b)
.
Равенство
НОД(a,b)·c = НОД(m, n)
.
Сложность вопроса
53
Сложность курса: Основы программирования - обучения основам
50
Оценить вопрос
Комментарии:
Аноним
спасибо за пятёрку
11 окт 2016
Аноним
Экзамен прошёл на зачёт. спс
21 фев 2016
Другие ответы на вопросы из темы программирование интуит.
- # Функция F последовательности цифр в десятичной записи числа n ставит в соответствие единицу, если n делится на 7, и ноль в противном случае. Какая из приведенных ниже функций на последовательности десятичных цифр числа n является индуктивным расширением функции F?
- # Как нумеруются биты внутри байта или машинного слова?
- # Пусть p и q — два указателя на целочисленное значение: int *p, *q; Укажите все корректные выражения языка Си среди перечисленных ниже:
- # Указать, чему будет равно значение переменной n в результате выполнения следующего фрагмента программы: int n = 1; int i = 3; switch (i) { case 4: n *= 7; case 3: n *= 5; case 2: n *= 3; case 1: n *= 2; break; default: n = (-1); }
- # Прототип функции, которая вычисляет сумму элементов массива a длины n, выглядит следующим образом: double sum(const double *a, int n); Можно ли в описании этой функции и ее прототипа опустить слово const? (Могут ли при этом в корректной программе возникнуть ошибки или предупреждения на стадии компиляции?)