Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.79/6792: Рейтинг темы: голосов - 6792, средняя оценка - 4.79
1 / 1 / 0
Регистрация: 12.10.2010
Сообщений: 43
1

Как возвести число в степень

06.11.2010, 13:48. Показов 1286484. Ответов 26
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Как возвести число в степень ???
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.11.2010, 13:48
Ответы с готовыми решениями:

Как возвести дробное число в целую степень? К примеру 2,7 возвести в степень 2 на C++.
Как возвести дробное число в целую степень? К примеру 2,7 возвести в степень 2 на C++.

Если введенное число отрицательное и четное, то возвести его в 3 степень, иначе возвести в квадрат
Ввести целое число В. Если В отрицательное и четное, то возвести его в 3 степень, иначе возвести в...

Синтаксис C++ - как возвести заданное число в заданную степень
Здравствуйте ! Такой вопрос : почему при выполнении кода int a = 0; int b; b = a ^ 0;...

Как возвести число в целочисленную степень и взять корень N-ной степени?
извиняюсь, за ламерский вопрос, но как в C++ возвести число в целочисленную степень и взять корень...

26
182 / 183 / 55
Регистрация: 08.04.2009
Сообщений: 1,309
06.11.2010, 13:59 2
Лучший ответ Сообщение было отмечено mik-a-el как решение

Решение

C++
1
2
3
#include <cmath>
....
pow(a,b);
9
1 / 1 / 0
Регистрация: 12.10.2010
Сообщений: 43
06.11.2010, 14:02  [ТС] 3
Можно по подробнее )))
0
8 / 8 / 0
Регистрация: 07.07.2010
Сообщений: 154
06.11.2010, 14:06 4
Tim novicvok,
pow(a,b);
a - число
b - степень
2
182 / 183 / 55
Регистрация: 08.04.2009
Сообщений: 1,309
06.11.2010, 14:08 5
Tim novicvok, если после объяснения landan, все равно не понятно, то вот полностью:
C++
1
2
3
4
5
6
7
8
9
#include <cmath>
#include <iostream>
using namespace std;
int main()
{
double a=5,b=3;//a-÷èñëî êîòîðîå íàäî âîçâåñòè, b- ñòåïåíü
cout << pow(a,b);
cin.get();
}
5
1 / 1 / 0
Регистрация: 12.10.2010
Сообщений: 43
06.11.2010, 14:19  [ТС] 6
Thanks )))
0
182 / 183 / 55
Регистрация: 08.04.2009
Сообщений: 1,309
06.11.2010, 14:28 7
пожалуйста =)))
1
0 / 0 / 0
Регистрация: 06.04.2015
Сообщений: 1
06.04.2015, 20:35 8
Готовый пример
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <cmath>
using namespace std;
 
int main()
{
    setlocale(0, "");
    double a, b;
    cout << "Возведения числа в степень:)" << endl;
    cout << "Пример: 5^2" << endl;
    cout << "Введите число: " << endl;
    cin >> a;
    cout << "Введите степень: " << endl;
    cin >> b;
    cout << "Ваш ответ = " << pow(a,b) << endl;
 
    return 0;
}
0
3 / 3 / 2
Регистрация: 03.11.2016
Сообщений: 138
05.11.2016, 12:53 9
а можно обойтись без pow?
0
125 / 117 / 67
Регистрация: 07.11.2014
Сообщений: 788
05.11.2016, 12:58 10
MilkyWay888, можно, используя цикл. Можно еще воспользоваться побайтовым сдвигом влево
0
Любитель чаепитий
3742 / 1798 / 566
Регистрация: 24.08.2014
Сообщений: 6,016
Записей в блоге: 1
05.11.2016, 13:01 11
Цитата Сообщение от MilkyWay888 Посмотреть сообщение
а можно обойтись без pow?
Можно циклом.
Можно рекурсией.

Добавлено через 43 секунды
Цитата Сообщение от Aymurat Посмотреть сообщение
Можно еще воспользоваться побайтовым сдвигом влево
Побайтовый сдвиг влево увеличивает число вдвое, а не возводит в степень.
0
125 / 117 / 67
Регистрация: 07.11.2014
Сообщений: 788
05.11.2016, 13:03 12
GbaLog-, а если n кратно 2?
0
3 / 3 / 2
Регистрация: 03.11.2016
Сообщений: 138
05.11.2016, 13:04 13
можно пример? как воспользоваться через цикл.
0
125 / 117 / 67
Регистрация: 07.11.2014
Сообщений: 788
05.11.2016, 13:09 14
Лучший ответ Сообщение было отмечено mik-a-el как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
using namespace std;
int main(){
    int n,a;
    cin>>n>>a;
    int nsave = n;
    if (a == 0) {cout<<1; return 0;}
    for(int i = 1; i < a; i++)
    {
        n*=nsave;
    }
    cout<<n;
}
Пожалуйста)
2
Любитель чаепитий
3742 / 1798 / 566
Регистрация: 24.08.2014
Сообщений: 6,016
Записей в блоге: 1
05.11.2016, 13:09 15
Цитата Сообщение от Aymurat Посмотреть сообщение
а если n кратно 2?
Тогда да, но вряд ли нужно средство, которое использовало бы такой подход.
Можно, конечно, сделать вот так:
C++
1
2
3
4
5
6
7
8
9
10
11
long pow( int n, int x )
{
    if( n == 2 )
    {
        return n << x;
    }
    else
    {
        return pow_impl( n, x );
    }
}
Но не думаю, что это эффективно.
Цитата Сообщение от MilkyWay888 Посмотреть сообщение
как воспользоваться через цикл.
C++
1
2
3
4
for( int it{}; it < power - 1; ++it )
{
    n *= begin_n;
}
0
3 / 3 / 2
Регистрация: 03.11.2016
Сообщений: 138
05.11.2016, 13:19 16
C++
1
2
3
4
5
6
7
8
9
10
11
// определите только функцию power, где
//    x - число, которое нужно возвести в степень
//    p - степень, в которую нужно возвести x
//
 
int power(int x, unsigned p) {
    int answer;
    /* считаем answer */
answer = x * p;
    return answer;
}
Почему пишет не верно?
0
Любитель чаепитий
3742 / 1798 / 566
Регистрация: 24.08.2014
Сообщений: 6,016
Записей в блоге: 1
05.11.2016, 13:21 17
Цитата Сообщение от MilkyWay888 Посмотреть сообщение
Почему пишет не верно?
А почему должно писать верно?
Вот, прочитайте, что такое степень числа.
0
125 / 117 / 67
Регистрация: 07.11.2014
Сообщений: 788
05.11.2016, 13:26 18
MilkyWay888, где, собссна, цикл? Или рекурсия? Вы умножили число на степень
0
3 / 3 / 2
Регистрация: 03.11.2016
Сообщений: 138
05.11.2016, 13:55 19
Нет, мне нужно написать функцию без использования pow и math.h
C++
1
2
3
4
5
6
7
int power (int x, unsigned p){
int answer = x;
if (x >= 0){
for (int x =1; x*x<p; ++x){
return answer;
}
}
В чем ошибка?
0
Любитель чаепитий
3742 / 1798 / 566
Регистрация: 24.08.2014
Сообщений: 6,016
Записей в блоге: 1
05.11.2016, 14:00 20
Лучший ответ Сообщение было отмечено mik-a-el как решение

Решение

MilkyWay888,
C++
1
2
3
4
5
6
typedef long long ll;
 
ll pow( ll n, unsigned k )
{
    return k ? n * pow( n, k - 1 ) : 1;
}
0
05.11.2016, 14:00
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.11.2016, 14:00
Помогаю со студенческими работами здесь

Возвести число в степень
Дано натуральное n. Написать программу вычисления a^n(&quot;а&quot; в степени n)

Возвести число y в степень 2000
Помогите пожалуйста Нужно как-то придумать как возвести число y в степень 2000 на с++ уже не знаю...

Возвести число в a степень 7 за 4 операций
Нужно использовать только операцию умножения #include &lt;iostream&gt; using namespace std; int...

Возвести число в степень(дробную)
В соседней теме помог сделать возведение в целочисленную степень и вот стало интересно, но что-то...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru