当前位置:首页Arduino > 正文

c/c++实现任意大小的n的n次方的计算

作者:野牛程序员:2023-07-02 17:12:48Arduino阅读 2618

以下是使用C++编写的函数,用于计算任意大小的n的n次方:

#include <iostream>
#include <vector>

using namespace std;

// 大整数相乘函数
vector<int> multiply(vector<int>& num1, int num2) {
    int carry = 0;
    vector<int> result;

    for (int i = 0; i < num1.size(); i++) {
        int product = num1[i] * num2 + carry;
        result.push_back(product % 10);
        carry = product / 10;
    }

    while (carry != 0) {
        result.push_back(carry % 10);
        carry /= 10;
    }

    return result;
}

// 大整数的n次方计算
vector<int> power(int n, int exponent) {
    vector<int> result;
    result.push_back(1);

    for (int i = 0; i < exponent; i++) {
        result = multiply(result, n);
    }

    return result;
}

// 打印大整数
void printBigNumber(const vector<int>& number) {
    for (int i = number.size() - 1; i >= 0; i--) {
        cout << number[i];
    }
    cout << endl;
}

int main() {
    int n, exponent;
    cout << "Enter the value of n: ";
    cin >> n;
    cout << "Enter the exponent: ";
    cin >> exponent;

    vector<int> result = power(n, exponent);

    cout << "Result: ";
    printBigNumber(result);

    return 0;
}

这个程序使用vector<int>来表示大整数,并实现了两个函数:

  • multiply:该函数用于将一个大整数乘以一个小整数,并返回结果的大整数表示。

  • power:该函数用于计算大整数n的n次方,并返回结果的大整数表示。

main函数中,用户输入n和指数,然后调用power函数计算结果,并使用printBigNumber函数打印结果。请注意,这个程序的计算结果可能需要大量的内存来存储大整数,如果超过了系统的限制,可能会导致程序崩溃。


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击