大数求幂

Posted jeseesmith

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大数求幂相关的知识,希望对你有一定的参考价值。

#include <stdio.h>
int main()
{
    int a[20001];//储存每一位所得到的数
    int temp,base,digit,power,i,j=0;//temp每次的得数   digit每次得数的位数  power是幂指数,base是底数
    printf("type the base");
    scanf("%d",&base);
    printf("type the power");
    scanf("%d",&power);
    a[0]=1;//从1开始乘
    digit=1;//位数从第一位开始
    for(i=1;i<=power;i++)
    {
        int num=0;//储存进位数
        for(j=0;j<digit;j++)
        {
            temp=a[j]*base+num;//将一个数的每一位数都分别乘以base,
            a[j]=temp%10;//将一个数的每一位数利用数组进行储存
            num=temp/10;
        }
        while(num)//判断退出循环后,num的值是否为0
        {
            a[digit]=num%10;//继续储存
            num=num/10;
            digit++;
        }
    }
    for(i=digit-1;i>=0;i--)//倒序输出每一位
        printf("%d",a[i]);
    printf("
");
    return 0;
}

 

以上是关于大数求幂的主要内容,如果未能解决你的问题,请参考以下文章

Java之大数问题

求幂函数代码比较

C语言中如何实现大数计算

求幂的 SIMD 代码

二分求幂(快速求幂,二进制求幂)

二分求幂