2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Возведение числа в степень циклом с предусловием
Сообщение23.10.2014, 00:06 
Аватара пользователя
Собственно, где ошибка?
Код:
program stepfor;
  {$APPTYPE CONSOLE}

uses
  SysUtils;
Var
    a, b, i: integer;
    p, k:real;


Begin
  writeln ('vvedite osnovanie stepeni a');
  readln(a);
  writeln ('vvedite pokazatel stepeni b');
  readln(b);
  i:=0;
  p:=1;
    while i<=b do
      begin
        p:=p*a;
        i:=i+1;           {   1*a    1*a^2    1*a^3 ...........................}
      end;
  writeln ('otvet= ',p:3:3);
readln;
End.


-- 22.10.2014, 23:10 --

А, разобрался, там надо было перед циклом положить
Код:
i:=1;


-- 22.10.2014, 23:20 --

Хорошо, но вот если степень отрицательная, то после цикла while можно добавить условие:
Код:
if b<0 then
           p:=1/(p*a);

А вот в цикле repeat until такая штука не прокатывает
Код:
    i:=0;
    p:=1;
    repeat
      i:=i+1;
      p:=p*a;
    until i=b;
       if b<0 then
                p:=1/(p*a);

Там зацикливание начинается?

 
 
 
 Re: Возведение числа в степень циклом с предусловием
Сообщение23.10.2014, 01:34 
У вас условия разные на самом-то деле.

 
 
 
 Re: Возведение числа в степень циклом с предусловием
Сообщение23.10.2014, 10:14 
Аватара пользователя
iifat в сообщении #922197 писал(а):
У вас условия разные на самом-то деле.

Почему?

 
 
 
 Re: Возведение числа в степень циклом с предусловием
Сообщение23.10.2014, 11:32 
fronnya в сообщении #922255 писал(а):
Почему?

$(i \le b) \ne \neg(i =b)$

 
 
 
 Re: Возведение числа в степень циклом с предусловием
Сообщение11.11.2014, 16:11 
P. S. Сложность вашего алгоритма $O(n)$, где $n$ - степень.
Воспользуйтесь формулой: $a^{2m} = a^m \cdot a^m$
Это на порядок увеличит скорость вашего алгоритма.
Удачи! :D

 
 
 [ Сообщений: 5 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group