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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 27, средняя оценка - 4.81
GhostVIRUS
6 / 6 / 0
Регистрация: 17.09.2011
Сообщений: 81
#1

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

11.11.2011, 01:03. Просмотров 3572. Ответов 18
Метки нет (Все метки)

Дано число n и его нужно возвести в степень s. Можно ли это как-то сделать не используя циклы. Заранее спасибо...
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.11.2011, 01:03
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Возведение в степень (C++):

Возведение в степень - C++
Почему, когда я пытаюсь возвести в квадрат x с типом int, то получается 24, а когда с типом double, то все хорошо и получается 25? ...

Возведение в степень - C++
напишите программный код для С++ Builder

Возведение в степень - C++
Срочно, помогите записать выражение cos^4(x)

Возведение в степень - C++
Подскажите оператор для возведения числа в n-ую степень. Зарание спасиба

Возведение a в степень b - C++
Пользователь вводит числа а и b, программа считает "а" в степени "b". Помогите написать код

Возведение в степень - C++
Совсем недавно начал изучать C++. Учу по книге. Было задание: Вводишь число Вводишь степень в которую надо возвести это число ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
alkagolik
Заблокирован
11.11.2011, 01:07 #2
C
1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
 
int rekur_pow(int n, int m, int s){
    while (s > 1)
        return (rekur_pow(n * m, m, s - 1));
}
 
int main ()
{
    printf("%d\n", rekur_pow(2, 2, 5));
    return 0;
}
1
alkagolik
Заблокирован
11.11.2011, 01:13 #3
C
1
2
3
int rekur_pow(int n, int m, int s){
    return (s > 1) ? rekur_pow(n * m, m, s-1) : n;
}
1
GhostVIRUS
6 / 6 / 0
Регистрация: 17.09.2011
Сообщений: 81
11.11.2011, 12:05  [ТС] #4
Хм... Выбивает ошибку...

Добавлено через 10 минут
Ладно скорее я так решение не найду. Поставлю конкретно вопрос...
Число записано в массиве c[18] по цифрам. Количество цифр известно и записано в переменной numbers. 2<n<10.
Нужно проверить равность выражения
c[0]*n в степени n-1 + c[1]*n в степени n-2 + c[2]*n в степени n-3 + ... + c[numbers-1]*n в степени n-n переменной a.
Надеюсь все что я тут накалякал, понятно...
0
Dar101
40 / 40 / 1
Регистрация: 12.05.2011
Сообщений: 109
11.11.2011, 12:23 #5
Если нужно просто возвести в степень, не сильно разбираясь, что там внутри, можно и библиотеку подключить. Дальше разберётесь?
*В примере 3^2=9.
C++
1
2
3
4
5
6
7
8
#include <conio.h>
#include <math.h>
#include <iostream>
int main()
{
    std::cout << pow(3.0,2.0);
    getch();
}
0
GhostVIRUS
6 / 6 / 0
Регистрация: 17.09.2011
Сообщений: 81
11.11.2011, 12:34  [ТС] #6
Спасибо. Я уже и сам разобрался....
0
Thinker
Эксперт C++
4226 / 2200 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
11.11.2011, 12:36 #7
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от GhostVIRUS Посмотреть сообщение
Спасибо. Я уже и сам разобрался....
А как на счет быстрого (бинарного) возведения в степень:

C++
1
2
3
4
5
6
7
8
9
10
11
12
long Pow(long a, unsigned int n)
{
   long deg = a, rez = 1;
   while (n)
   {
      if (n & 1)
         rez *= deg;
      deg *= deg;
      n >>= 1;
   }
   return rez;
}
3
-=ЮрА=-
11.11.2011, 13:04
  #8

Не по теме:

Цитата Сообщение от GhostVIRUS Посмотреть сообщение
Можно ли это как-то сделать не используя циклы.
Цитата Сообщение от Thinker Посмотреть сообщение
while (n)
* *{
- а так прикольный алгоритм

1
Thinker
Эксперт C++
4226 / 2200 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
11.11.2011, 13:09 #9
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение

Не по теме:


- а так прикольный алгоритм

Не по теме:

А, точно, человеку рекурсия нужна, половину прочитал задание, спасибо

0
-=ЮрА=-
Заблокирован
Автор FAQ
11.11.2011, 13:14 #10
GhostVIRUS, этот код позволят производить целочисленное возведение в степень
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
using namespace std;
 
long my_pow(long val, long pwr)
{
    long res = val;
    if(1 < (pwr--))
        res *= my_pow(val, pwr);
    return res;
}
 
int main()
{
    long val;
    long pwr;
    cout<<"Enter value : ";cin>>val;
    cout<<"Enter power : ";cin>>pwr;
    cout<<my_pow(val, pwr)<<endl;
    system("pause");
    return 0;
}

Не по теме:

PS:

Цитата Сообщение от alkagolik Посмотреть сообщение
int rekur_pow(int n, int m, int s){
* * * * return (s > 1) ? rekur_pow(n * m, m, s-1) : n;
}
да уж три значения чтобы возвести 5 в квадрат я так понял нужно ввести 5,2,2
чтобы вы поняли что такое рекурсия см код вышеЯ даже скрин для Вас нарезал

0
Миниатюры
Возведение в степень  
-=ЮрА=-
11.11.2011, 13:20
  #11

Не по теме:

Thinker, без ножей которые иногда у нас с вами проскакивают, можите мне помочь с алгоритмом быстрого возведения дабл в дабл???От меня кроме плюсика и + отзыв, честно неохота искать, я знаю что в подобных алгоритмах вы спец

0
Thinker
11.11.2011, 13:25
  #12

Не по теме:

-=ЮрА=-, да какие там ножи, я миролюбивый человек Если честно, то double в степени double даже не думал как это будет без разложения в ряд. Вот double в int это тоже самое, что и в прежнем алгоритме. А может быстрее pow() уже и нельзя написать алгоритм

1
-=ЮрА=-
11.11.2011, 13:29
  #13

Не по теме:

Цитата Сообщение от Thinker Посмотреть сообщение
А может быстрее pow() уже и нельзя написать алгоритм
- я тоже склонясь к этому, но всё же для расширения кругозора хотелось бы знать, надо погуглить

1
Thinker
Эксперт C++
4226 / 2200 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
11.11.2011, 13:30 #14
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение

Не по теме:

- я тоже склонясь к этому, но всё же для расширения кругозора хотелось бы знать, надо погуглить

Не по теме:

Вы меня прям заинтересовали этим алгоритмом

0
-=ЮрА=-
11.11.2011, 14:31     Возведение в степень
  #15

Не по теме:

Thinker, я тут подумал
y = pow(x,z)
ln(y) = z*ln(x)
Тогда у = exp(z*ln(x)) -выходит нужен быстрый алгоритм для exp и быстрый алгоритм для ln
Как по мне вроди как логично

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.11.2011, 14:31
Привет! Вот еще темы с ответами:

Возведение в степень! - C++
Возник вопрос - Возможно пока не понятна в чем мысль! Попробую на примере объяснить! Возведение числа 2 в 1000 - ую степень будет...

возведение в степень! - C++
Кто помнит функцию возведения в степень.?? &quot;трам-пам-пам&quot; (a,b) ???? Добавлено через 3 минуты И еще желательно...

Возведение в степень. C++ - C++
можно ли написать программу для возведения в вводимую степень вводимого числа с помощью рекурсивной функции

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


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
11.11.2011, 14:31
Ответ Создать тему
Опции темы

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