|
Вопрос # 3 160/ вопрос открыт / |
|
Здравствуйте, уважаемые эксперты!
дано уравнение
y=(x^(n^2))/( a^n)
х в степени {n в квадрате} - все это деленное на а в степени n
Предпод задал задание: решить уравнение с помощью схемы горнера (он хотел, чтобы мы уменьшили количество умножений), не используя процедурного программирования!
Приведу пример, в котором уравнение решается без этой схемы, то есть максимальным количеством умножений.
В данном случае используется максимальное количество умножений
как написать прогу так, чтобы количество умножений уменьшилось?
Заранее спасибо!
Приложение: Переключить в обычный режим- var a,x,n,i,chislitel,znamenatel:integer;
- begin
- read(a,x,n);
- i:=1;
- chislitel:=1;
- while (i<=(n*n)) do
- begin
- chislitel:=x*chislitel;
- inc(i);
- end;
- i:=1;
- znamenatel:=1;
- while (i<=n) do
- begin
- znamenatel:=znamenatel*a;
- inc(i);
- end;
- y:=chislitel/znamenatel;
- write(y);
- readln
- end.
 |
Вопрос задал: Ruslan (статус: 1-ый класс)
Вопрос отправлен: 6 сентября 2009, 21:34
Состояние вопроса: открыт, ответов: 0.
|
Мини-форум вопроса
Всего сообщений: 1; последнее сообщение — 7 сентября 2009, 09:50; участников в обсуждении: 1.
|
Anderson N.N (статус: 2-ой класс), 7 сентября 2009, 09:50 [#1]:
Вот ответ на вскидку ...
Раз препод ничего не говорит насчет размера и оптимизации кода ...
Попробуй заменить умножение сложением.
Например: n*m
for i=0 to n do
res= res + m;
Например: n^m
for i=0 to m do
for j=0 to n do
res= res + n;
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|