永发信息网

请大神帮忙写个函数!大整数求幂的。可以计算像2000的10次幂这么大数的函数!

答案:1  悬赏:70  手机版
解决时间 2021-12-04 09:20
请大神帮忙写个函数!大整数求幂的。可以计算像2000的10次幂这么大数的函数!
最佳答案
#include 
#include 
#define N 1000

//    字符串倒转,目的是将个位放在str[0],十位放在str[1]...... 
void TurnString(char str[])
{
    int i = 0, j = strlen(str)-1;
    char ch;
    
    for( ; i < j; ++i,--j)
    {
        ch = str[i];
        str[i] = str[j];
        str[j] = ch;
    }
}

void BigNumMultip(char res[], char num1[], char num2[])
{
    int i, j, k;
    int num[N] = {0};    //    暂存乘积之和 
    
    TurnString(num1);
    TurnString(num2);    
    memset(res, 0, sizeof(char)*N);
    for(i = 0; i < strlen(num1); ++i){
        for(j = 0; j < strlen(num2); ++j){
            k = (num1[i]-'0')*(num2[j]-'0');
            num[i+j]   += k%10;        //    该位保留余数        
            num[i+j+1] += k/10;        //    下一位进位 
        }
    }
    
    k = 1;
    while(num[k-1]>0 || k    {
        num[k] += num[k-1]/10;
        num[k-1] %= 10;
        ++k;
    }
    TurnString(num1);    //    将数字转回来 
    TurnString(num2);    
    
    
    i = 0, k = k-1;
    while(k--)
        res[i++] = num[k]+'0';
    res[i] = '';
}

void BigNumPow(char res[], char num[], int n)
{
    char tmp[N];
    
    strcpy(tmp, num);
    while(--n)
    {
        BigNumMultip(res, num, tmp);
        strcpy(num, res);
    }
}
             

int main()
{
    int n;
    char num[N], res[N];
    
    gets(num);
    scanf("%d", &n);
    
    BigNumPow(res, num, n);
    puts(res);
    
    return 0;
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
下列有关生物体内基因与酶关系的叙述,正确的
男人不恋美色,女人活着还有什么盼头
高速ETC的原理
我在我们农村信用社贷款5万元现在想提前还清
Nancy reminded me of what I should have f
218.4.82*最精确能查到哪儿
锅油酥咸酥饼的家常做法大全怎么做好吃视
董大力个人资料老婆
明天勇士和骑士谁会赢
手机的PIN2码和PUK2码怎么可以查询得到
在周巷哪里学车比较好?
一个女人,她把我删了,又把我加回来了,啥意
单选题已知U=R,A=[0,2],B=(1,+∞),则A
冷冻卵子为什么是违法的?
英语作文《my uncle》
推荐资讯
文字游戏4个奥运年相加会等于2008,文字奥运年
仰望那口是哪首歌的歌词
太江东去,浪淘尽,千古风流人物后半句
装way0s软路由什么主板配置,带机量200台。
我系欧阳正是什么歌
求鉴定IPHONE4,型号MC605CH/A
股份公司在一级市场发行股票算不算IPO.三板上
我想问星姐倬伦一个问题,现在有很多人讲心理
小说里为什么总是憎恨权贵子弟
巴基斯坦的履约保函问题。我们公司在巴基斯坦
求神奇宝贝,即宠物小精灵的观看顺序!
穿越火线,体验服在哪里?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?