大数求幂

#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;
}
原文地址:https://www.cnblogs.com/jeseesmith/p/12539174.html