Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 48, средняя оценка - 4.92
Alex_p
Сообщений: n/a
#1

Возведение в степень - C++

23.10.2006, 01:18. Просмотров 5828. Ответов 9
Метки нет (Все метки)

подскажите,пожалуйста, способ реализации (алгоритм)операции возведение в степень числа с показателем более 200.
Результат не должен иметь научной записи типа x.xxxxxe+xxx. Необходимо, чтобы результат был представлен, например, строкой string, которая могла бы содержать более или менее 500 цифровых символов.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.10.2006, 01:18     Возведение в степень
Посмотрите здесь:

Возведение в степень - C++
Дано число n и его нужно возвести в степень s. Можно ли это как-то сделать не используя циклы. Заранее спасибо...

Возведение в степень - C++
Вам конечно это покажется тупой проблемой, но всё же. Напишите пожалуйста как возводить в степень на си и пример. В инете что ищу всё на...

Возведение степень - C++
int n=2; float i; i=pow(((n-1)/(n+1)), n*(n-1)); Выдает ошибку Domain Error. В чем дело и есть ли альтернатива pow() ?

Возведение в степень - C++
Вывести на экран таблицу степеней "к", где те изменяются от 1 до 10,к-вещественое число.оперцию возведения вещественого числа в степень...

возведение в степень - C++
всем доброго времени суток, задача такая: возвести х в 10 степень, но вывод осуществить при помощи printf int main() { double x,y; ...

возведение в степень, pow - C++
вычитал что возведение в степень - функция pow. #include "stdafx.h" #include <math.h> #include <iostream> using namespace...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vizlim
3 / 3 / 0
Регистрация: 24.10.2011
Сообщений: 269
23.10.2006, 12:51     Возведение в степень #2
http://www.relib.com/forums/Topic895217-15-1.aspx http://www.relib.com/forums/Topic895217-15-1.aspx -- работа с большими числами...
а о возведение в степень тут была тема и предлагали использовать ряды.
Alex_p
Сообщений: n/a
24.10.2006, 23:28     Возведение в степень #3
нашёл код, реализующий операцию возведение в степень, но на Паскале, с которым я незнаком:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
uses crt;
var
  d,i,j,t,c,x: integer;
  m: array [1..25000] of integer;
begin
  clrscr;
  m[1]:=1;
  writeln('Введите число(2..9)');
  readln(x);
  writeln('Введите степень');
  readln(d);
  for i:=1 to d do
  begin
     for j:=1 to 25000 do
     begin
       if t<>0 then
         m[j]:=m[j]*x+t
       else
         m[j]:=m[j]*x;
      t:=0;
      if m[j]>9 then
      begin
        t:=m[j] div 10;
        m[j]:=m[j] mod 10;
      end;
    end;
  end;
  write(x,' ^ ',d,' = ');
  for i:=d downto 1 do begin
    if m[i]=0 then
      c:=c+1
    else
      break;
  end;
  for i:=d-c downto 1 do write(m[i]);
  readkey;
end.
Может кто-то одинаково хорошо владеет и С и Паскалем, переведите, пожалуйста.
xleo
0 / 0 / 0
Регистрация: 24.10.2006
Сообщений: 5
25.10.2006, 01:09     Возведение в степень #4
дета так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
int d,i,j,t,c,x;
int[25000] m;
void main(){
m[1]=1; 
cout>>('Введите число(2..9)'); cin<<(x); 
cout>>('Введите степень'); cin<<(d); 
for (i=1;i<=d;i++){
   for (j=1;j<=25000;j++){
        if (t!=0) 
          m[j]=m[j]*x+t
        else 
          m[j]=m[j]*x;     
        t=0;     
        if m[j]>9{
          t=m[j]/10;
          m[j]=m[j]%10;
        }   
   }
}
cout>>(x,' ^ ',d,' = '); 
for (i=d;i>=1;i--){
if (m[i]==0){
  c=c+1}   
else 
  break;
}  
for (i=d-c;i>=1;i--)
  cout>>(m[i]);
}
John Paramol
Сообщений: n/a
25.10.2006, 01:12     Возведение в степень #5
Перевод, я думаю, дословный.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <stdio.h>
#include <conio.h>
#include <mem.h>
int d=0,i=0,j=0,t=0,c=0,x=0;
int m[25000] = { *(int*)memset(m,0,sizeof(m)) };
int main(int argc, char* argv[])
{
  clrscr();
  m[0]=1;
  puts("Enter value (2..9)");
  scanf("%d",&x), fflush(stdin);
  puts("Enter power");
  scanf("%d",&d), fflush(stdin);
  for(i=0; i<d; ++i)
  {
    for(j=0; j<25000; ++j)
    {
      if(t!=0) m[j]=m[j]*x+t;
      else m[j]=m[j]*x;
      t=0;
      if(m[j]>9)
      {
        t=m[j]/10;
        m[j]=m[j]%10;
      }
    }
  }
  printf("%d ^ %d = ",x,d);
  for(i=d-1; i>=0; --i)
  {
    if(m[i]==0) ++c;
    else break;
  }
  for(i=d-c-1; i>=0; --i) printf("%d",m[i]);
  getch();
  return 0;
}
Только сдается мне, считается неправильно. Может я что-то неправильно перевел.
xleo
0 / 0 / 0
Регистрация: 24.10.2006
Сообщений: 5
25.10.2006, 01:26     Возведение в степень #6
мда, прошу прощение, я забыл переменные обнулить вначале, вот
VladConn
1 / 1 / 2
Регистрация: 17.10.2007
Сообщений: 1,119
25.10.2006, 01:44     Возведение в степень #7
...строкой string, которая могла бы содержать более или менее 500 цифровых символов...
То есть ЛЮБОЕ число цифровых символов. Зачем тогда именно 500?
John Paramol
Сообщений: n/a
25.10.2006, 02:20     Возведение в степень #8
мда, прошу прощение, я забыл переменные обнулить вначале, вот
Не хотел говорить, но не только в этом твое упущение
xleo
0 / 0 / 0
Регистрация: 24.10.2006
Сообщений: 5
25.10.2006, 14:12     Возведение в степень #9
здоровая критика полезна.

пасибо - согласен
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.10.2006, 21:28     Возведение в степень
Еще ссылки по теме:

Возведение матрицы в степень - C++
Можете исправить? using namespace std; void main () { setlocale( LC_ALL,&quot;Russian&quot; ); int n;int C; int m ; ...

Рекурсивное возведение в степень - C++
ребят, нужна задача... рекурсивное возведение в base степень exponent: stepen(int base, int exponent)

Рекурсия возведение в степень - C++
Занимаюсь изучением языка С++. Компилятор Visual C++ 2010 express.Когда компилирую выдает: 1&gt;------ Build started: Project: recf,...

Возведение матрицы в степень - C++
Прошу помочь, пожалуйста! Когда возвожу в 3 степень неправильно считает, я не могу увидеть, где ошибка. #include &lt;iostream&gt; using...


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

Или воспользуйтесь поиском по форуму:
Alex_p
Сообщений: n/a
28.10.2006, 21:28     Возведение в степень #10
Благодарю за отклики и реальную помощь. Код поправил. Считает.
Yandex
Объявления
28.10.2006, 21:28     Возведение в степень
Ответ Создать тему
Опции темы

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