Отличается скоростью
В обычном алгоритме Евклида мы последовательно вычитаем из большего меньшее, пока они не станут равны.
В модифицированном мы берем остаток от деления большего на меньшее, пока одна из переменных не станет равной 0.
То есть если взять числа 36 и 48, то
Обычный алгоритм Евклида:
1) 48 - 36 = 12
2) 36 - 12 = 24
3) 24 - 12 = 12
4) Вывод 12
Модифицированный:
1) 48 %(mod) 36 = 12
2) 36 %(mod) 12 = 0
3) Вывод 12
Разница в 1 шаг из-за того, что числа маленькие, с большими числами разница в количестве шагов больше.
2. "Брюссель"
3. 2
4. 30 КБ
5. 104
Объяснение:
Задача 2.
16 бит - это два байта. Следовательно, 20 байт - 10 символов.
При удалении слова удаляется также пробел и запятая. Значит, слово состоит из 8 символов. Это слово "Брюссель".
Задача 3.
Размер правильного сообщения в символах: 23
В байтах: 46. Лишних байт - 4. Лишних пробелов - 2.
Задача 4.
Всего символов: 16*32*60 = 30 720
Всего байт: 30 720 * 1 = 30 720 ( 8 бит - 1 байт )
Всего КБ: 30 720 / 1024 = 30
Задача 5.
Размер предложения в символах: 52
Размер в байтах: 52*2=104 ( 16 бит - 2 байта)
Если квадратов десять, то:
[если честно, лет 7 не кодил на паскале, поэтому могу ошибаться в синтаксисе или каких-то деталях]
задаем 3 массива числовых элементов:
var
S, P, x: array[1..10] of integer; //S - будущие площади, P - периметры, x - стороны квадратов
i: integer; //счетчик для цикла
begin
for i := 1 to 10 do
begin
Writeln("Введите сторону "+IntToStr(i)+" квадрата:");
Readln(x[i]);
end; //ввели стороны, теперь вычисляем площади и периметры:
for i := 1 to 10 do
begin
S[i] := x[i]*x[i]; //для нахождения площади перемножаем стороны каждого квадрата
P[i] := x[i]*4; //для нахождения периметра - умножаем сторону квадрата на 4
//и тут же выводим это на экран:
Writeln("Площадь "+IntToStr(i)+" квадрата равна "+IntToStr(S[i]));
Writeln("Периметр "+IntToStr(i)+" квадрата равен "+IntToStr(P[i]));
Writeln;
end;
Readln //это чтоб дождаться нажатия Энтер перед закрытием окошка :)
end;
Должно работать.