注:部分内容摘自《数据结构》,黄国瑜,叶乃菁编著,清华大学出版社。
需求:编写程序求n!。
分析:数字相乘可以分解为各个阶位相乘,比如百位数A*B可分解为A100*B+A10*B+A1*B,然后从小位到大位分析,如果某一位的值大于等于10,则需要向高位进位,并对该位除以10,余数为该位的值。比如24*5,等价于(2*5)*10+(4*5)*1,因为4*5=20大于10,则从个位向十位进2,余0,这样十位为12(10+2),因为大于10,则十位须向百位进位1,余2为十位值,最后百位为1,十位为2,个位为0,即120,为最终计算值。每一位的表示可以使用整型值数组表示。
程序:
自己编写:
/**
*功能:求解n!
*作者:赵聪
*时间:2013-3-30
*/
#include <stdio.h>
#define LEN 40//控制数据位数的数组长度
/**
*主程序
*/