【C语言】超大数乘法运算

昨天做排列组合的时候遇到A(a,b)这个问题,需要计算A(20,20)超大,计算机32位的,最大数只能是2^32,这让我很悲伤!

于是乎就自己研究了如何进行超大数的计算!

/*********************************************************************************
 *      Copyright:  (C) 2013 Chen ZhenWei  
 *                  All rights reserved.
 *
 *       Filename:  bignum.c
 *    Description:  This file 
 *                 
 *        Version:  1.0.0(12/12/2013~)
 *         Author:  Chen ZhenWei 
 *      ChangeLog:  1, Release initial version on "12/12/2013 08:21:23 AM"
 *                 
 ********************************************************************************/

#include 
#include 

int save_num(const char *str,unsigned short *num)
{
   int i=0;
   int length = strlen(str);

   for(i=0; i=100)
        {
            result[i+1] += result[i]/100;
            result[i] = result[i]%100;
        }
    }
    for(i=res_len; i>0; i--)
    {
        printf("%02d",result[i-1]);
    }

    printf("\n");

}

设计思路:

【C语言】超大数乘法运算_第1张图片

操作结果:





你可能感兴趣的:(算法)