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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
sancho1996
0 / 0 / 0
Регистрация: 24.06.2013
Сообщений: 55
#1

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

26.06.2013, 14:39. Просмотров 1329. Ответов 14
Метки нет (Все метки)

Пользователь вводит числа а и b, программа считает "а" в степени "b".

Помогите написать код
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.06.2013, 14:39
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Возведение a в степень b (C++):

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

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

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

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

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

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
igoroff-d
17 / 17 / 1
Регистрация: 31.10.2012
Сообщений: 26
26.06.2013, 14:43 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <math.h>
using namespace std;
 
void main()
{
    double a;
    double b;
    cout<<"Enter a: ";
    cin>>a;
    cout<<"Enter b: ";
    cin>>b;
    cout<<"Result is: "<<pow(a,b)<<endl;
}
Belfegor
Ghost
172 / 172 / 6
Регистрация: 16.09.2012
Сообщений: 526
26.06.2013, 14:45 #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <cmath>
int main() {
    setlocale(LC_ALL, "Russian");
    double a,b;
    std::cout << "Введите а: ";
    std::cin>>a;
    std::cout << "Введите b: ";
    std::cin>>b;
    std::cout<<"a^b= "<<pow(a,b)<<std::endl;
    return 0;
}
Добавлено через 21 секунду

Не по теме:

опоздал

sancho1996
0 / 0 / 0
Регистрация: 24.06.2013
Сообщений: 55
26.06.2013, 14:54  [ТС] #4
@igoroff-d, @Belfegor, а можно ли возвести в степень не обращаясь к math.h

Добавлено через 33 секунды
т.е. другим способом
Surovyi
1 / 1 / 0
Регистрация: 19.06.2013
Сообщений: 9
26.06.2013, 15:02 #5
Конечно можно. Фактические возведение в степень - это количество умножений значения самого на себя (во всяком случае, если степерь не дробное число). То есть используя цикл, можно избежать использование библиотеки math.h
sancho1996
0 / 0 / 0
Регистрация: 24.06.2013
Сообщений: 55
26.06.2013, 15:03  [ТС] #6
@Surovyi, можете показать с циклами как сделать?
Belfegor
Ghost
172 / 172 / 6
Регистрация: 16.09.2012
Сообщений: 526
26.06.2013, 15:05 #7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#define ll long long
ll binpow(ll x,ll n) {
    ll res=1;
    while(n) {
        if(n&1)res*=x;
        x*=x;
        n>>=1;
    }
    return res;
}
int main() {
    setlocale(LC_ALL, "Russian");
    ll a,b;
    std::cout << "Введите а: ";
    std::cin>>a;
    std::cout << "Введите b: ";
    std::cin>>b;
    std::cout<<"a^b= "<<binpow(a,b)<<std::endl;
    return 0;
}
sancho1996
0 / 0 / 0
Регистрация: 24.06.2013
Сообщений: 55
26.06.2013, 15:10  [ТС] #8
а еще как можно?
Surovyi
1 / 1 / 0
Регистрация: 19.06.2013
Сообщений: 9
26.06.2013, 15:10 #9
@Belfegor, уже дал вам рабочий вариант используя цикл.
Belfegor
Ghost
172 / 172 / 6
Регистрация: 16.09.2012
Сообщений: 526
26.06.2013, 15:13 #10
Цитата Сообщение от sancho1996 Посмотреть сообщение
а еще как можно?
C++
1
2
3
4
5
6
7
8
9
10
ll binpow (ll a, ll n) {
    if (n == 0)
        return 1;
    if (n % 2 == 1)
        return binpow (a, n-1) * a;
    else {
        ll b = binpow (a, n/2);
        return b * b;
    }
}
Surovyi
1 / 1 / 0
Регистрация: 19.06.2013
Сообщений: 9
26.06.2013, 15:19 #11
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;
 
int main()
{
    setlocale (LC_ALL, "Russian");
    double a, b;
    cout << "Введите число: " << endl;
    cin >> a;
    cout << "Введите степень: " << endl;
    cin >> b;
 
   for (b; b != 1; b--)
    {
          a = a*a;
    }
 
    cout << "Результат: " << a;
 
    return 0;
}
Belfegor
26.06.2013, 15:23
  #12

Не по теме:

Цитата Сообщение от Surovyi Посмотреть сообщение
for (b; b != 1; b--)
* * {
* * * * * a = a*a;
* * }
запускали? 5^6=?

Surovyi
1 / 1 / 0
Регистрация: 19.06.2013
Сообщений: 9
26.06.2013, 15:27 #13
@Belfegor,

Не по теме:

Если честно нет, у меня нет возможности сейчас проверить работоспособность. Извиняюсь за возможные ошибки. Если у вас есть время и желание, то можете модифицировать мой вариант.Буду благодарен и я, и автор темы.

sancho1996
0 / 0 / 0
Регистрация: 24.06.2013
Сообщений: 55
26.06.2013, 15:29  [ТС] #14
Спасибо большое вам всем за помощь
Belfegor
26.06.2013, 15:34     Возведение a в степень b
  #15

Не по теме:

Цитата Сообщение от Surovyi Посмотреть сообщение
можете модифицировать мой вариант
C++
1
2
3
4
5
6
7
ll pwr (register ll m, register ll e) {
    register ll temp;
    temp = 1;
    for( ; e; e--)
        temp*= m;
    return temp;
}

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

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

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

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

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


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

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

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