Хорошо известно, что умножение легко заменить сложением. Пишем цикл, который нужное число раз повторяет операцию накопления суммы. Есть нюансы: сложение не целых чисел, отрицательных. Есть тонкости: быстрее получется, если суммировать большее число меньшее число раз. Ну а теперь задачка.
Реализуйте операцию деления, не используя операции деления. Не разрешается использовать вариации операции деления (целочисленное, получение остатка и т.д.). Или опровергайте такую возможность.
Оригинальное решение будет оцениваться добавлением баллов в репутацию. И еще: алгоритм можно записать в текстовом виде или в математической форме (кому-как удобно). Успехов.
2010-11-23 • Просмотров [ 13886 ]
точность будет переменной Е(количество знаков после запятой)
К разность
цикл от И=1 до Е+1
{
цикл пока Б больше А
{
Б:=А-Б
К:=К+10/(10*Е)// блин с выводом не охото запариваться, там придётся вручную писать,потом переводить в числовой тип, а это нудно и очевидно\\
}
Б:=Б*10
}
ВЫВОДИМ К
от значения делимого будем отнимать значение делителя, до тех пор пока на следующем этапе разница между обновленным значениям делимого и делителя будет больше/равна нуля, при этом на кажом шаге пока идет отнимание инкрементируем какую то переменную. когда цикл закончится - эта переменная будет целой частью деления, а оставшиеся значения делимого - остаток.
математически как то так можно:
$$(a-b_1)-b_2-b_3-\ldots-b_n\ge0$$
где значения индекса n - будет равняться целой части от деления. для завершения цикла должно выполниться условие:
$$(a-b_1)-b_2-b_3-\ldots-b_n-b_{n+1}<0$$
остаток останется в a
*****************+++
а, ну хотя если представлять число в десятичном виде то дробь надо перевести
С=рандом число.
D=отклонение от С. //если припустим Е=0,1 то D=0,01
Цикл пока модуль((Б*С) -А) => E
___Делаем
___Если (Б*С>А) тогда С=С-D иначе С=С+D.
___Заканчиваем цикл.
Выводим "А/Б="+С.
Это кстати преобразованый метод поиска комплексных переменных в уравнении. Берется 2 рандомных числа, и подставляются в уравнение, потом отклонение, подстановка в уравнение, отклонение... и находится корень.
Насамом деле вариантов решений этой задачи я думаю много.