Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.97/31: Рейтинг темы: голосов - 31, средняя оценка - 4.97
VLK
195 / 164 / 19
Регистрация: 05.05.2013
Сообщений: 1,199
1

Возведение в степень, отрицательные числа

25.07.2013, 14:13. Просмотров 5850. Ответов 53
Метки нет (Все метки)

В библиотеке <cmath> есть такая функция pow(A,B) - получаешь результат возведения A в степень B
Решил написать свой pow с положительными числами работает, а вот с отрицательными я не могу понять как правильно,
1. -2 в 2 степени, на яндексе показывает что должно быть -4, обычный калькулятор показывает -4, pow(A,B) из <cmath> показывает 4, мой pow тоже показывает 4
2. -2 в 3 степени, везде показывает -8 (в том числе и у меня)

по поводу первого варианта, так как все же правильно, -2 в 2 степени, 4 или -4?

PS, да, мне стыдно что я не помню школьную математику.. с каждым может случится..
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.07.2013, 14:13
Ответы с готовыми решениями:

Возведение числа n в степень m.
Написать программу - возведение числа n в m-ю степень. Входные данные поступают...

Возведение из числа степень
Прошу помочь. Вводим любое число n и надо возвести её степень. (притом, должно...

Возведение числа в степень n-1
Есть формула {(-1)}^{n-1}*{3}^{n-1} , n увеличивается циклом на 1. Как записать...

Возведение числа а в степень n
Возведение числа а в степень n ,задача не проста чем , 1&lt;=а&lt;=10 | 1&lt;=n&lt;=7000...

Возведение числа в степень!
Хай всем кто на форуме! Помогите с задачей! Надо возвести число в степень...

53
VLK
195 / 164 / 19
Регистрация: 05.05.2013
Сообщений: 1,199
26.07.2013, 11:59  [ТС] 41
то, что не отступов, мне так удобнее, и удобнее что бы между некоторыми "блоками" были пустые строки.

насчет лишней переменной, я попозже посмотрю, как усовершенствовать, насчет _pow == 0 может и зря написал, но по мне лучше просчитать все варианты, я вот когда решил написать этот код, я и не думал о возведении в отрицательную степень.

Вообще спасибо, еще на досуге подумаю.
0
nonedark2008
1051 / 785 / 220
Регистрация: 28.07.2012
Сообщений: 2,187
26.07.2013, 12:09 42
Цитата Сообщение от Ilot Посмотреть сообщение
nonedark2008, не сочтите за труд указать рабу божьему где можно почитать о такого рода алгоритмах?
Первый алгоритм можно легко нагуглить - он используется повсеместно.
Про второй - можно почитать во втором томе Кнута.
1
VLK
195 / 164 / 19
Регистрация: 05.05.2013
Сообщений: 1,199
26.07.2013, 14:11  [ТС] 43
Цитата Сообщение от Ilot Посмотреть сообщение
Вот именно. Код работает только для целых степеней.
Такой код не лучше?
C++
1
2
3
4
5
6
7
long double my_pow(long double number, short int _pow)
{
    long double temp = 1; // временное значение
    for (int count = 0; count < abs(_pow); count++)
       temp *= number;
    return (_pow > 0) ? temp: 1/temp;
}
nonedark2008, не сочтите за труд указать рабу божьему где можно почитать о такого рода алгоритмах?
а можно разъяснить что значит:

1. в 4-й строчке abs, не знаю что за функция, по этому ее у меня нет.
2. знаки "?", "?:" что он делает в С++, я пока с ними не сталкивался
3. строчка 6 более подробно расписать, т.к. я ее не понимаю, . я сталкивался пока что только с выражениями типа return a; , а не то, что там написано.
0
nonedark2008
1051 / 785 / 220
Регистрация: 28.07.2012
Сообщений: 2,187
26.07.2013, 14:17 44
VLK, ты бы хоть в документацию заглянул, А?
abs - функция модуля.
a ? b: c - если a - истина, то b, иначе c.
Цитата Сообщение от VLK Посмотреть сообщение
return (_pow > 0) ? temp: 1/temp;
Если _pow больше нуля, то вернуть temp, иначе вернуть 1/temp
1
castaway
Эксперт С++
4930 / 3037 / 453
Регистрация: 10.11.2010
Сообщений: 11,116
Записей в блоге: 10
Завершенные тесты: 1
26.07.2013, 14:17 45
1. открой для себя http://www.cplusplus.com/ (сверху поиск)
2. тернарный оператор
3. возвращение значения результата тернарного оператора
1
Ilot
Эксперт С++
1831 / 1189 / 342
Регистрация: 16.05.2013
Сообщений: 3,139
Записей в блоге: 5
Завершенные тесты: 1
26.07.2013, 14:19 46
1)Стандартаня ф-я возвращает модуль числа.
2)Конструкция:
[условие] ? [вевести это если условие истина] : [вывести это если уловие ложь]
это более короткое выражение данной конструкции:
if (условие)
[вевести это если условие истина]
else
[вывести это если уловие ложь]
3)Если показатель больше нуля вывести temp иначе 1/temp
p.s.вот так всегда на самом последнем месте
1
VLK
195 / 164 / 19
Регистрация: 05.05.2013
Сообщений: 1,199
26.07.2013, 14:20  [ТС] 47
Цитата Сообщение от castaway Посмотреть сообщение
1. открой для себя http://www.cplusplus.com/
2. тернарный оператор
3. возвращение значения результата тернарного оператора
Я бы для себя его открыл, если бы знал английский

короче всем спасибо, по мимо вопроса в начале, я для себя сделал вывод, что пока что еще рано я задаю вопрос, гнилой ли у меня код.
0
castaway
Эксперт С++
4930 / 3037 / 453
Регистрация: 10.11.2010
Сообщений: 11,116
Записей в блоге: 10
Завершенные тесты: 1
26.07.2013, 14:24 48
Цитата Сообщение от VLK Посмотреть сообщение
Я бы для себя его открыл, если бы знал английский
Это не проблема. Я когда встречаю незнакомое слово то просто забиваю его в http://yandex.ru/yandsearch?text=%D0...B8%D0%BA&lr=49
Если есть интерес к программированию, то слова запоминаются легко.
0
VLK
195 / 164 / 19
Регистрация: 05.05.2013
Сообщений: 1,199
26.07.2013, 14:25  [ТС] 49
Цитата Сообщение от castaway Посмотреть сообщение
Это не проблема. Я когда встречаю незнакомое слово то просто забиваю его в http://yandex.ru/yandsearch?text=%D0...B8%D0%BA&lr=49
Если есть интерес к программированию, то слова запоминаются легко.
а когда почти все слова незнакомые?
0
castaway
Эксперт С++
4930 / 3037 / 453
Регистрация: 10.11.2010
Сообщений: 11,116
Записей в блоге: 10
Завершенные тесты: 1
26.07.2013, 14:31 50
Цитата Сообщение от VLK Посмотреть сообщение
а когда почти все слова незнакомые?
Ну это уже тяжелый случай)) Если есть интерес к программированию - значит должен быть интерес к английскому языку, если нет интереса к англ.яз. - тогда не должно быть интереса к программированию. Парадокс..
0
VLK
195 / 164 / 19
Регистрация: 05.05.2013
Сообщений: 1,199
26.07.2013, 14:35  [ТС] 51
Цитата Сообщение от castaway Посмотреть сообщение
Ну это уже тяжелый случай)) Если есть интерес к программированию - значит должен быть интерес к английскому языку, если нет интереса к англ.яз. - тогда не должно быть интереса к программированию. Парадокс..
Ох.. рано или поздно наступают времена когда интерес сменяется необходимостью, при чем необходимость эту надо реализовать в кротчайшие сроки.
1
SoulYangOr
0 / 0 / 0
Регистрация: 24.07.2013
Сообщений: 10
26.07.2013, 16:03 52
Цитата Сообщение от Kukurudza Посмотреть сообщение
где посмотреть?
Мат анализ и численные методы тебе в помощь)))
0
-=ЮрА=-
Заблокирован
Автор FAQ
19.03.2014, 22:18 53
Уточнение в алгоритме (справедливо для всех b >= 0)
http://www.cyberforum.ru/cgi-bin/latex.cgi?atan2(Re({e}^{b*ln(|a|)}), Im({e}^{b*ln(|a|)})) = \pi*(b - floor(b))
0
Миниатюры
Возведение в степень, отрицательные числа  
Вложения
Тип файла: rar exp2.rar (2.0 Кб, 3 просмотров)
QWwy
0 / 0 / 0
Регистрация: 16.08.2018
Сообщений: 8
17.08.2018, 12:43 54
0.15283
0
17.08.2018, 12:43
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.08.2018, 12:43

Возведение числа в степень
Помогите написать программу, возводящщую число M в степень N (-10&lt;M&lt;10, 0&lt;N&lt;10...

Рекурсия, возведение числа в степень
подскажите плис как возвести число в степень через перемножение чисел. с...

Возведение в степень вводимого числа
int _tmain() {float t, A; cin&gt;&gt;t&gt;&gt;A; float b=t+A; float a=pow(b,1.0/3.0);...


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

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

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