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

Как возвести в степень - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 24, средняя оценка - 4.63
хАЛЕКСЕЙх
 Аватар для хАЛЕКСЕЙх
8 / 8 / 2
Регистрация: 11.10.2012
Сообщений: 118
18.10.2012, 09:25     Как возвести в степень #1
Здравствуйте, есть у меня задание возвести число в степень
Название: Олимпиада.png
Просмотров: 935

Размер: 697 байт
Допустим 2 в 5, сначала я попробовал так
C++
1
int A = 2*2*2*2*2;
Но компилятор ругается, пишет что "переполнение при вычеслении целочисленного значения"
И тут я понял что есть специальный знак в С++, неподскажете мне его?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11836 / 6815 / 770
Регистрация: 27.09.2012
Сообщений: 16,899
Записей в блоге: 2
Завершенные тесты: 1
18.10.2012, 09:42     Как возвести в степень #2
а какое число и в какую степень?
В math.h есть функция pow
хАЛЕКСЕЙх
 Аватар для хАЛЕКСЕЙх
8 / 8 / 2
Регистрация: 11.10.2012
Сообщений: 118
18.10.2012, 09:50  [ТС]     Как возвести в степень #3
Цитата Сообщение от Croessmah Посмотреть сообщение
а какое число и в какую степень?
В math.h есть функция pow
да всё разобрался спасибо тебе,
если ещё кто непонял, я тут по форуму полазил и
в библиотеке
C++
1
#include <cmath>
есть функция
C++
1
pow(a,b)
где в pow - запрограмирована свойство возведения в степень
a - это основное число, допустим 2
b - это цифра степени, допустим 5
можно ещё записать так
C++
1
pow(a,5)
или так
C++
1
pow(2,5)
-=ЮрА=-
Заблокирован
Автор FAQ
18.10.2012, 14:23     Как возвести в степень #4
хАЛЕКСЕЙх, по твоему заданию можно заключить что первое число А равняется А7 в 16-ричной форме записи тобишь 167 а второе число В = 251 в восьмиричной т.е 169 и никакого отношения к возведению как по мне твоё задание не имеет. Тебе нужен ИМХО перевод в десятичную из разных систем счисления.
На счёт переполнения и прочего - степень легко реализуется через цикл, а чтобы переполнения не было, нужно давать соотв тип твоим параметрам

К примеру для
C++
1
double A = 2*2*2*2*2;
переполнения не будет
хАЛЕКСЕЙх
 Аватар для хАЛЕКСЕЙх
8 / 8 / 2
Регистрация: 11.10.2012
Сообщений: 118
18.10.2012, 14:33  [ТС]     Как возвести в степень #5
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
по твоему заданию можно заключить что первое число А равняется А7 в 16-ричной форме записи тобишь 167 а второе число В = 251 в восьмиричной т.е 169 и никакого отношения к возведению как по мне твоё задание не имеет
я сначала потумал что это степень, а потом дочитал до конца задание
и там было 4 варианта ответов, и в конце маленькие цифры(2, 2, 8, 16)
потом подумал, потом ещё подумал, а потом посмотрел на варианты ответов
вот такой, 10010100 и снизу 2, и я допёр что это двоичная форма

Кстати, я сделал это задание так что можно мне больше не помогать,
За этот совет
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
double A = 2*2*2*2*2;
особенное спасибо, теперь буду знать.
Всем спасибо
doctor_lecter
 Аватар для doctor_lecter
279 / 152 / 8
Регистрация: 22.09.2012
Сообщений: 283
18.10.2012, 16:06     Как возвести в степень #6
Цитата Сообщение от хАЛЕКСЕЙх Посмотреть сообщение
int A = 2*2*2*2*2;
Интересно, почему тут переполнение, результат ведь всего 32?
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
18.10.2012, 16:13     Как возвести в степень #7
Цитата Сообщение от хАЛЕКСЕЙх Посмотреть сообщение
Здравствуйте, есть у меня задание возвести число в степень
Вложение 191963
Допустим 2 в 5, сначала я попробовал так
C++
1
int A = 2*2*2*2*2;
Но компилятор ругается, пишет что "переполнение при вычеслении целочисленного значения"
И тут я понял что есть специальный знак в С++, неподскажете мне его?
Во-первых такого оператора нет, это не бейсик, а во-вторых даже если бы он и был, от переполнения оператор не спасёт, так как если наступает переполнение, то результат больше типа, значит переполнения не будет ровно в двух случаях:
1. При не правильном результате.
2. Если сразу выбрать тип большей разрядности.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.10.2012, 16:14     Как возвести в степень
Еще ссылки по теме:

C++ Как int возвести в степень?
Как возвести 2 в большую степень? C++
C++ Как возвести переменную в степень?

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

Или воспользуйтесь поиском по форуму:
-=ЮрА=-
18.10.2012, 16:14     Как возвести в степень
  #8

Не по теме:

Цитата Сообщение от doctor_lecter Посмотреть сообщение
Интересно, почему тут переполнение, результат ведь всего 32?
- предполагаю, что автор вначал возводил в степень по принципу число и основание системы счисления, т.е 251^8. Я не стал заморачиваться на этот момент, т.к. в любом случае для возведения в степень оптимальней всего использовать дабл либо ещё более длинные типы...

Yandex
Объявления
18.10.2012, 16:14     Как возвести в степень
Ответ Создать тему
Опции темы

Текущее время: 01:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru