鱼C论坛

 找回密码
 立即注册
查看: 2541|回复: 5

[技术交流] 计算m的n次方

[复制链接]
发表于 2014-2-5 09:14:23 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 andalousie 于 2014-2-5 12:47 编辑

用于计算100000位以内的m的n次方
#include<iostream>
#include<string>

std::string CalculateBigpower(int m, int n)
{
        int resulting[100001] = {0};
        int front=1;
        int back=1;
        resulting[front]=1;
        int carry=0;
        for(int i=1;i<=n;i++)
        {        
                int j;
                for(j=front; j<=back; ++j)
                {
                        int temp = resulting[j];
                        resulting[j] =  (resulting[j] * m + carry) % 10;
                        carry = (temp * m + carry) / 10;
                }
                if(carry)
                {
                        resulting[j] = carry;
                        carry = 0;
                        back++;
                }
        }
        std::string Numstring;
        for(int i = back; i>0; i--)
                Numstring.append(1, resulting[i] + 48);
        return Numstring;
}

int main()
{
        int m, n; 
        while(1)
        {
                std::cin  >>  m  >>  n;
                std::string str = CalculateBigpower(m, n);
                std::cout << str << std::endl;
        }
        return 0;                
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-2-5 09:45:14 | 显示全部楼层
可以用快速幂来算。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-2-5 10:31:57 | 显示全部楼层
既然都是100000以内的那可以用 long int 直接调用pow()不就好了啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-2-5 11:54:51 | 显示全部楼层

是100000位以内,不是100000以内,拜托。据我所知内有一个整型可以这么长,能够算出2的9999次方。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-2-5 11:58:01 | 显示全部楼层
andalousie 发表于 2014-2-5 11:54
是100000位以内,不是100000以内,拜托。据我所知内有一个整型可以这么长,能够算出2的9999次方。

好吧 我看错了表生气啊  
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-2-5 12:48:25 | 显示全部楼层
牡丹花下死做鬼 发表于 2014-2-5 11:58
好吧 我看错了表生气啊

不生气。你一说我又检查了一下。结果发现3的n次方出现了问题,现在改正了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-24 02:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表