2014 dxdy logo

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

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




Начать новую тему Ответить на тему
 
 Возведение числа в степень циклом с предусловием
Сообщение23.10.2014, 00:06 
Аватара пользователя


27/03/14
1091
Собственно, где ошибка?
Код:
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 
Заслуженный участник


16/02/13
4196
Владивосток
У вас условия разные на самом-то деле.

 Профиль  
                  
 
 Re: Возведение числа в степень циклом с предусловием
Сообщение23.10.2014, 10:14 
Аватара пользователя


27/03/14
1091
iifat в сообщении #922197 писал(а):
У вас условия разные на самом-то деле.

Почему?

 Профиль  
                  
 
 Re: Возведение числа в степень циклом с предусловием
Сообщение23.10.2014, 11:32 
Заслуженный участник


02/08/11
7003
fronnya в сообщении #922255 писал(а):
Почему?

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

 Профиль  
                  
 
 Re: Возведение числа в степень циклом с предусловием
Сообщение11.11.2014, 16:11 


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

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group