Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.95/64: Рейтинг темы: голосов - 64, средняя оценка - 4.95
9 / 9 / 3
Регистрация: 14.12.2010
Сообщений: 129

Возведение в степень

09.10.2011, 01:28. Показов 13994. Ответов 30
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите, как написать программу возведения 2-ки в миллионную степень и вывести результат на экран.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
#include <math.h>
#include <cstdlib>
 
 
int main ()
{
  printf ("7 ^ 3 = %lf\n", pow (7.0,3.0));
  printf ("4.73 ^ 12 = %lf\n", pow (4.73,12.0));
  printf ("32.01 ^ 1.54 = %lf\n", pow (32.01,1.54));
  printf ("2 ^ 1000000.0 = %lf\n", pow (2.0,1000000.0));
  system("pause");
  return 0;
}
Не работает.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.10.2011, 01:28
Ответы с готовыми решениями:

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

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

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

30
 Аватар для alkagolik
1599 / 622 / 113
Регистрация: 15.07.2011
Сообщений: 3,548
09.10.2011, 14:28
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от aeshes Посмотреть сообщение
Просто было подозрение, что помимо быстрого возведения в степень можно как-то оптимизировать способ хранения большого числа именно для этой задачи, где 2 в основании
я вижу только один способ, это массив чаров или с двуразрядными, или с одноразрядными числами (не решил пока) и переносы на триггерах (скорее D) и счетчиках, и операции преимущественно бинарные. картину "в общем" вижу. в ближайшее время сяду за реализацию.
0
Higher
 Аватар для diagon
1953 / 1219 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
09.10.2011, 14:34
Цитата Сообщение от alkagolik Посмотреть сообщение
это массив чаров или с двуразрядными, или с одноразрядными числами
Можно спокойно по 9 цифр в одном элементе массива хранить.
Или по 17-18, если ассемблерные вставки использовать =\ Как - не знаю, не пробовал.
0
 Аватар для aeshes
448 / 211 / 21
Регистрация: 07.10.2011
Сообщений: 462
09.10.2011, 14:40
Цитата Сообщение от alkagolik Посмотреть сообщение
я вижу только один способ, это массив чаров или...
Мне кажется, что массив чаров даст оптимизацию в используемой памяти для хранения. Но количество операций над массивом будет такое же, что и над массивом целых. Хотя могу и ошибаться
0
Эксперт С++
 Аватар для Thinker
4267 / 2241 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
09.10.2011, 14:41
А зачем здесь вообще алгоритмы
https://www.cyberforum.ru/cgi-bin/latex.cgi?2^n = 10...0, где после 1 стоит n нулей
0
 Аватар для aeshes
448 / 211 / 21
Регистрация: 07.10.2011
Сообщений: 462
09.10.2011, 14:43
Thinker, ну это да, я еще в самом начале написала, что это так. А если нужен десятичный вид, а не двоичный?

О, еще где-то видела реализацию больших чисел как массива unsigned long. Когда твое число превосходит максимально допустимое в данном типе, у тебя в след элемент массива записывается это переполнение, а пред элемент обнуляется
Короче, проблема, я так понимаю, в реализации мат операций над большим числом в конкретном представлении
0
Эксперт С++
 Аватар для Nameless One
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
09.10.2011, 14:43
Thinker, ты с https://www.cyberforum.ru/cgi-bin/latex.cgi?10^n не путаешь, случаем?
0
Эксперт С++
 Аватар для Thinker
4267 / 2241 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
09.10.2011, 14:47
Цитата Сообщение от Nameless One Посмотреть сообщение
Thinker, ты с https://www.cyberforum.ru/cgi-bin/latex.cgi?10^n не путаешь, случаем?
Неа, это двоичный формат!
0
09.10.2011, 14:57

Не по теме:

а, ну тогда все ок

0
 Аватар для demik991
0 / 0 / 0
Регистрация: 18.12.2011
Сообщений: 15
26.12.2011, 08:20
вот мой псевдо двуядерний, 2 гига оперативки ( и пока ище криворукость в написании кода на С ) потребовал на раздумия 5 с половиной минут и таки вывел результат (думал не дождусь). При етих результатах уверен что можна оптимизировать и достичь куда лудших результатов.

Добавлено через 5 минут
Цитата Сообщение от alkagolik Посмотреть сообщение
вы представляете себе агрегат, который в состоянии вычислить
у меня такой имееться, канечно не напрямую, а так как я думал и так как здесь описывалось через масив

Добавлено через 59 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
int p[35000],n,i,j,h,t;
 
for(int k = 0; k<35000; k++)
p[k]=0;
 
t=0;
h=0;
p[0]=1;
 
cout<< "Enter power of 2: ";
cin>>n;
 
if (n==0) p[0]=1;
else
{
   for(i=0; i<n; i++)
   for(j=0; j <= h; j++)
   {
 
       p[j]*=2;
       if (t>0) {p[j]+=t; t=0;}
       if(p[j]/1000000000>0)
       {
            t=p[j]/1000000000;
            p[j]=p[j]%1000000000;
            if(p[j+1]<=0)    h++;
        }
   }
}
вот мое детище, но зато как на меня тут просматриваеться алгоритм действий
0
Higher
 Аватар для diagon
1953 / 1219 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
26.12.2011, 15:27
Цитата Сообщение от Nameless One Посмотреть сообщение
real* * 0m0.271s
Таки С быстрее.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
diagon@shadeware:~$ cat test.cpp
#include <stdio.h>
#include <gmp.h>
 
int main()
{
    FILE *out = fopen("output.txt", "w");
    
    mpz_t a;
    mpz_init(a);
    mpz_ui_pow_ui(a, 2, 1000000);
    mpz_out_str(out, 10, a);
}
diagon@shadeware:~$ gcc test.cpp -lgmp -O3 && time ./a.out
 
real    0m0.109s
user    0m0.104s
sys 0m0.000s
Т.е. за 0.1 секунду считает.
Причем почти все время уходит на вывод в файл, если вывод закомментить, то прога будет выполняться 0.001 секунду.
0
 Аватар для demik991
0 / 0 / 0
Регистрация: 18.12.2011
Сообщений: 15
28.12.2011, 01:41
очень интересно, у меня если забрать вывод в консоль то програма выполняеться не 5м30сек, а 5м20сек.
надо попробовати с индийским самому, а не с библиотекой, будеть.
а вот вопросец где оно держит промежуточный результат. до 2^30 понятно, а вот 2^512 например
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.12.2011, 01:41

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

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

Возведение в степень
Здравствуйте, нужно возвести константу &quot;e&quot; в степень -x-2, может кто-нибудь подскажет как это сделать

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

возведение в степень
помогите плиз! в файле есть задачка. нужно рекурсивно возвести в степень. Код: #include &lt;iostream&gt; float stepen(float a, int n) ...


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

Или воспользуйтесь поиском по форуму:
31
Ответ Создать тему
Новые блоги и статьи
Транслитерация текста с кириллицы на латиницу
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version 1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon . . .
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров". Задача: Запрет инициалов. Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . . Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг. Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует. В процессе разработки. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru