x的y次方,大数存储

std::vector<int> MultiSelf(const std::vector<int>& value)
{
    std::vector<int> result(value.size() + 1, 0);
    for (auto i = 0; i < value.size(); ++i) {
        auto temp = value[i] * 2;
        result[i] += temp % 10;
        result[i+1] += temp / 10;
    }
    if (result[value.size()] == 0) {
        result.erase(result.begin() + value.size());
    }
    return result;
}
std::string MyPower(int num, int times) 
{
    std::vector<int> base;
    for (int i = 1; i <= times; ++i) {
        if (i == 1) {
            base.push_back(num); 
        } else {
            base = MultiSelf(base);
        }
    }
    std::reverse(base.begin(), base.end());
    std::string result;
    for (const auto& it : base) {
        result.append(1, '0' + it);
    }
    return result;
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容