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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.64
Jim
0 / 0 / 0
Регистрация: 04.05.2014
Сообщений: 57
#1

Посчитать 2 в степени целого длинного числа - C++

28.09.2014, 08:07. Просмотров 1717. Ответов 23
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <stdlib.h>
using namespace std;
 
 
int main()
{
    int i;
    double long  N,a;
    a=2;//Возводимое в степень число
    cin>>N; // Cтепень возведения
 
    for(i=1;i<=N-1;i++)
        a*=2;
    cout<<a;
system("pause");
return 0;
}
Возводит в степень пятизначного числа. Дальше не возводит. Нужно, чтобы возводил в 9-значное и дальше.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.09.2014, 08:07
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Посчитать 2 в степени целого длинного числа (C++):

Как вычислить 2 в степени длинного числа? - C++
Посчитать 2 в степени длинного числа.

Инвертировать младший байт длинного целого числа - C++
записать выражение,которое инвертирует младший байт этого числа!!!как???

Определить, является ли симметричным двоичное представление длинного целого числа - C++
Обработку двоичного числа делать без преобразование к строковому массиву, только сдвигами и битовыми операциями (&amp;, | и т.д.) ...

Написать группу перегруженных функций, которые возвращают модуль целого, длинного целого - C++
Вот задали в Университете написать програмки кому может пригодятся ришал,даю задание а ниже код: 1) Написать программу с помощью...

Программа постоянно печатает степени целого числа 2 - C++
Напишите программу, которая постоянно печатает степени целого числа 2, соответственно 2, 4, 8, 16, 32, 64 и т.д. Число повторений...

Написать рекурсивную функцию для вычисления натуральной степени заданного целого числа - C++
Рекурсия. Помогите исправить программу: Напишите рекурсивную функцию для вычисления натуральной степени заданного целого числа. ...

23
MousePro
49 / 30 / 1
Регистрация: 25.04.2013
Сообщений: 366
28.09.2014, 08:49 #2
C++ (Qt)
1
unsigned long long
попробуй
ну или
C++
1
std::cout<<pow(2,n);
0
Jim
0 / 0 / 0
Регистрация: 04.05.2014
Сообщений: 57
28.09.2014, 09:45  [ТС] #3
Не работает. В первом случае пишет 0, во втором ошибку.
0
MousePro
49 / 30 / 1
Регистрация: 25.04.2013
Сообщений: 366
28.09.2014, 09:57 #4
тогда тебе нужна длинная арифметика, в библиотеке crypto++ есть класс Integer
0
MakcPletnev
21 / 21 / 1
Регистрация: 01.02.2014
Сообщений: 446
Записей в блоге: 1
28.09.2014, 10:03 #5
Jim, ойейей, что за код. Есть же функция возведения числа в степень.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <stdlib.h>
using namespace std;
 
 
int main()
{
unsigned long long N, a, a2;
a=2;//Возводимое в степень число
cin>>N; // Cтепень возведения
 
a2 = pow(a, N);
cout << a2;
system("pause");
return 0;
}
Добавлено через 2 минуты
Если pow ошибка, то подключи библиотеку
C++
1
#include <math.h>
0
MousePro
49 / 30 / 1
Регистрация: 25.04.2013
Сообщений: 366
28.09.2014, 10:18 #6
Цитата Сообщение от MakcPletnev Посмотреть сообщение
Jim, ойейей, что за код. Есть же функция возведения числа в степень.
ULLONG вмещает 2^100, а в 9999 9999 9 ???
0
KOPOJI
Эксперт HTML/CSSЭксперт PHP
16702 / 6624 / 433
Регистрация: 12.06.2012
Сообщений: 19,879
Завершенные тесты: 1
28.09.2014, 10:32 #7
Цитата Сообщение от MakcPletnev Посмотреть сообщение
ойейей, что за код. Есть же функция возведения числа в степень.
И правда. И зачем только придумали длинную арифметику, есть же функция возведения числа в степень..
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <stdlib.h>
using namespace std;
 
 
int main()
{
    unsigned long long N, a, a2, a3;
    a = 2;//Возводимое в степень число
    cin >> N; // Cтепень возведения
 
    a2 = pow(a, N);
    cin >> N;
    a3 = pow(a, N);
    cout << a2 << endl << a3 << endl;
    system("pause");
    return 0;
}
Посчитать 2 в степени целого длинного числа
0
zss
Модератор
Эксперт С++
6626 / 6188 / 2047
Регистрация: 18.12.2011
Сообщений: 16,132
Завершенные тесты: 1
28.09.2014, 10:38 #8
KOPOJI, В VS 2008 нет функции pow(long long,long long):
d:\current\cpp\test\tset.cpp(16) : error C2668: pow: неоднозначный вызов перегруженной функции
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\math.h(575): может быть 'long double pow(long double,int)'
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\math.h(573): или 'long double pow(long double,long double)'
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\math.h(527): или 'float pow(float,int)'
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\math.h(525): или 'float pow(float,float)'
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\math.h(489): или 'double pow(double,int)'
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\math.h(123): или 'double pow(double,double)'
1> при попытке сопоставить список аргументов '(unsigned __int64, unsigned __int64)'
Т.е. есть возведение плавающего в плавающую степень,
есть плавающее в целую степень,
а вот целое в целую нет.
0
KOPOJI
Эксперт HTML/CSSЭксперт PHP
16702 / 6624 / 433
Регистрация: 12.06.2012
Сообщений: 19,879
Завершенные тесты: 1
28.09.2014, 10:48 #9
zss, ее вообще вроде нет..
Предупреждение 1 warning C4244: =: преобразование "double" в "unsigned __int64", возможна потеря данных c:\users\user\documents\visual studio 2013\projects\test\test\test.cpp 12 1 test
Только не в этом дело. Код я просто скопировал да добавил еще одну строку для сравнения..
0
zer0mail
2393 / 2025 / 201
Регистрация: 03.07.2012
Сообщений: 7,341
Записей в блоге: 1
28.09.2014, 11:10 #10
ТС, объясните, пожалуйста, зачем надо взводить 2 в long int? В природе нет таких чисел (число атомов во вселенной много меньше).
0
Jim
0 / 0 / 0
Регистрация: 04.05.2014
Сообщений: 57
28.09.2014, 11:28  [ТС] #11
Задание такое дали.

Добавлено через 2 минуты
И вообще выдает такую ошибку:[bcc32 Error] File1.cpp(14): E2015 Ambiguity between 'std:: pow(double,double) at c:\program files (x86)\embarcadero\rad studio\11.0\include\windows\crtl\math.h:217' and 'std:: pow(long double,int) at c:\program files (x86)\embarcadero\rad studio\11.0\include\windows\crtl\math.h:407'
0
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
28.09.2014, 11:39 #12
Цитата Сообщение от zer0mail Посмотреть сообщение
В природе нет таких чисел (число атомов во вселенной много меньше).
В природе и компьютеров нет. Их люди придумали. Решил загуглить "число атомов во Вселенной", и нашел вот это, ещё раз доказывающее, что не только атомы можно считать.

По теме: без того или иного варианта длинной арифметики не обойтись. Хотя учитывая ограниченность операций (только лишь возведение двойки в степень) можно вероятно предложить и упрощенную реализацию.
1
Jim
0 / 0 / 0
Регистрация: 04.05.2014
Сообщений: 57
28.09.2014, 12:16  [ТС] #13
KOPOJI, И вообще выдает такую ошибку:[bcc32 Error] File1.cpp(14): E2015 Ambiguity between 'std:ow(double,double) at c:\program files (x86)\embarcadero\rad studio\11.0\include\windows\crtl\math.h:217' and 'std:ow(long double,int) at c:\program files (x86)\embarcadero\rad studio\11.0\include\windows\crtl\math.h:407'
0
zss
Модератор
Эксперт С++
6626 / 6188 / 2047
Регистрация: 18.12.2011
Сообщений: 16,132
Завершенные тесты: 1
28.09.2014, 12:22 #14
Цитата Сообщение от Jim Посмотреть сообщение
вообще выдает такую ошибку
Еще раз намекаю - нет функции возведения целого в целое.
Приведите первый параметр к double.
C++
1
a2 =(unsigned long long) pow(2.0, N);
0
KOPOJI
Эксперт HTML/CSSЭксперт PHP
16702 / 6624 / 433
Регистрация: 12.06.2012
Сообщений: 19,879
Завершенные тесты: 1
28.09.2014, 22:40 #15
Jim, причем тут я? Я взял код из сообщения выше, добавил еще одну переменную и показал ошибочность подобного вычисления на примере.

З.Ы. bigPower.zip

Взято отсюда http://www.pvsm.ru/algoritmy/29587
Результат возведения двойки в степень 21000
Посчитать 2 в степени целого длинного числа
0
28.09.2014, 22:40
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.09.2014, 22:40
Привет! Вот еще темы с ответами:

Посчитать количество цифр целого неотрицательного числа n - C++
#include &lt;iostream&gt; using namespace std; int main() { unsigned long int n = 0,m=0; cin &gt;&gt; n; if (n&gt;10) { ...

посчитать и вывести на экран количество целого и десятичного числа - C++
Помогите пожалуйста с заданием Посчитать и вывести на экран количество целого и десятичного числа

Написать программу, которая делит числа в 5 степени на число в 14 степени и выводит ответ в 5 степени. Найти ошибку - C++
Ребят, такая проблема, задание: Написать программу, которая делит числа в 5 степени на число в 14 степени и выводит ответ в 5 степени. ...

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


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

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

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