Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 17.10.2013
Сообщений: 12
1

Вычислить степень числа не используя операцию умножения

13.05.2014, 18:56. Просмотров 1084. Ответов 5
Метки нет (Все метки)

Задача:
вычислить a в степени n(оба целые, задаются в ходе программы) не используя операцию умножения.
Вот что сам пока набросал:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Program dn;
{a-число n-степень i,q-счетчики}
var a, n, i, q, b:integer;
begin
write('Число: '); readln(a);
write('Степень: '); readln(n);
{1-ый цикл, считает степени}
while i<n do
  begin
  {2-ый цикл, как-бы выполняет умножение сложениями}
    while q<a do
      begin
      b:=b+a;
      q:=q+1;
      end;
  i:=i+1;
  end;
readln;
end.
Но проблема в том, что во 2-ом цикле переменная b каждый раз считается заново, не знаю как сделать по другому.
Подскажите что в моем коде изменить, или дайте свой, буду очень благодарен!

Добавлено через 5 часов 44 минуты
Что никто не знает?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.05.2014, 18:56
Ответы с готовыми решениями:

Вычислить z=x^k, используя операцию умножения
Сделать программу с циклом с параметром. Вычислить z=x^k, используя операцию умножения, т. е....

1. Вычислить не используя операцию возведения в степень
1. Вычислить не используя операцию возведения в степень.

Используя только операцию умножения вычислить а в степени к
Ребят, как решить задачу через for: Используя только операцию умножения вычислить а в степени к,...

Вычислить произведение чисел, не используя операцию умножения
1.Дано натуральные числа m и n.Вычислите их произведение не используя операцию умножения. 2.Дано...

5
399 / 378 / 408
Регистрация: 14.09.2013
Сообщений: 1,204
13.05.2014, 19:27 2
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
uses crt;
var a,i,n,step:longint;
begin
 clrscr;
  repeat
   write('×èñëî:');
    readln(a);
   write('Còåïåíü:');
    readln(n);
  until n>=0;
step:=1;
 for i:=1 to n do
  begin
   step:=step*a;
  end;
if n=0 then
 writeln(a,' â ñòåïåíè ',n,' = ',1)
else
 writeln(a,' â ñòåïåíè ',n,' = ',step);
 readkey;
end.
0
Модератор
61726 / 46204 / 31874
Регистрация: 18.05.2008
Сообщений: 111,475
13.05.2014, 19:35 3
Цитата Сообщение от TIGER27 Посмотреть сообщение
не используя операцию умножения.
А что творим?
Цитата Сообщение от Svager Посмотреть сообщение
step:=step*a;
0
399 / 378 / 408
Регистрация: 14.09.2013
Сообщений: 1,204
13.05.2014, 19:43 4
Цитата Сообщение от Puporev Посмотреть сообщение
А что творим?
а ой не дочитал
0
0 / 0 / 0
Регистрация: 17.10.2013
Сообщений: 12
13.05.2014, 20:06  [ТС] 5
Svager, Спасибо за ответ, но все же надо не используя операцию умножения.
Актуально.
0
1642 / 1071 / 1081
Регистрация: 03.07.2013
Сообщений: 4,507
13.05.2014, 23:48 6
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Function mul(a,b : Longint) : Longint;
Begin
  If b>1 then mul:=a+mul(a,b-1) else mul:=a;
end;
 
Function SPower(n,k : Longint) : Longint;
Begin
  If k=0 then SPower:=1 else
    If k>0 then SPower:=mul(n,SPower(n,k-1)) else SPower:=1;
end;
 
Begin
  Writeln(SPower(4,3));
end.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.05.2014, 23:48

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Вычислить элементы массива, не используя операцию возведения в степень
Элементы линейного вещественного массива A вычисляются по формуле A=n/x^n, n=1,...,N, x-0. Напишите...

1. Вычислить сумму чисел от 2 до 2 в десятой степени не используя операцию возведения в степень
Вычислить сумму чисел от 2 до 2 в десятой степени не используя операцию возведения в степень.

Ввести два числа А и С. - Найти произведение этих чисел, используя только операцию сложения. - Вычислить АС, используя только операцию умножения
Ввести два числа А и С. - Найти произведение этих чисел, используя только операцию сложения....

Вычислить сумму ряда, как используя операцию возведения в степень, так и не используя ее
вычислить S=\sum_{i=1}^{6}{2}^{i} а) используя операцию возведения в степень; б) не используя...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.