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
4195
Владивосток
У вас условия разные на самом-то деле.

 Профиль  
                  
 
 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, Супермодераторы



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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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