0 / 0 / 0
Регистрация: 17.09.2017
Сообщений: 5
1

Длинная арифметика, для натуральных чисел a и n вычислить a^n

21.12.2017, 20:21. Показов 4638. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, имеется вот такая задача.

Для натуральных чисел a и n вычислить a^n (1 <= a <= 9, 1 <= n <= 7000).

Входные данные в первой строке находятся разделённые пробелом a и n.
Выходные данные вывести одно число - результат без стоящих впереди нулей, стоящих впереди и
позади пробелов.


Входные данные ____________ Выходные данные
3 20 ____________________ 3486784401
5 50 ____________________ 88817841970012523233890533447265625

Кто знает как решать?Прошу помочь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.12.2017, 20:21
Ответы с готовыми решениями:

Длинная арифметика: вычислить 2^64 - 1
Всем доброго вечера. Нужна помощь в решении задачи. Составить программу для вычисления числа:...

Длинная арифметика: вычислить 7^123
Помогите пожалуйста!! Не могу справиться! Задание: вычислить 7123.

Длинная арифметика - вычислить 5^100
Могли бы вы мне подсказать принцип? Просто вообще не понимаю, как это сделать:( Вывести...

Длинная арифметика, деление чисел
https://www.cyberforum.ru/attachment.php?attachmentid=393890&amp;stc=1&amp;d=1398936287 Помоги с решием ,...

1
4063 / 3317 / 924
Регистрация: 25.03.2012
Сообщений: 12,483
Записей в блоге: 1
22.12.2017, 01:48 2
Лучший ответ Сообщение было отмечено iskepter как решение

Решение

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
#include <iostream>
#include <iomanip>
const unsigned long long osn=1000000000000000000ull;
const size_t max_l = 390;
unsigned long long big[max_l] = { 0 };
size_t size;
void multiply(int a) {
    int carry = 0;
    for (int i=0; i<size; ++i)
    {
        unsigned long long marry = big[i] * a + carry;
        carry = marry / osn;
        big[i]= marry % osn;
    }
    if (carry) big[size++] = carry;
 
}
int main(){
    size = 1;
    big[0] = 1;
    int a = 9;
    int n = 7000;
    for (int i = 1; i <= n; ++i)
        multiply(a);
    for (int i = size - 1; i >= 0; --i)
        std::cout << big[i] << std::setfill('0') << std::setw(18);
    return 0;
}
1
22.12.2017, 01:48
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.12.2017, 01:48
Помогаю со студенческими работами здесь

Длинная арифметика, сумма чисел
Входной файл содержит набор целых десятичных чисел, каждое из которых не превышает 30 десятичных...

Длинная арифметика. Сложение чисел
Есть у меня массив в каждой ячейке записано 1 или 0, т.е число в двоичном коде. Необходимо...

Длинная арифметика: вычислить значение 2 в степени n
Условие: Необходимо вычислить значение 2 в степени n. (Длинная арифметика) Задача мне понятна, но...

Сложение больших чисел (длинная арифметика)
Есть две строки string с числами, не получается сделать их суммирование с помощь, не могу понять...


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

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

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