ghost79

导航

<2009年4月>
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789

统计

留言簿(0)

随笔分类

随笔档案

文章档案

搜索

最新评论

阅读排行榜

评论排行榜

计算N的阶乘

N可以很大,阶乘的结果位数在10000以内的都可以算出,如果想再多一些,可以修改“const unsigned long MAX=10000;”中MAX的值。

附源代码:

 

#include <iostream>

using namespace std;

const unsigned long MAX=10000;
   
int main( int argc, char *argv[] )   
{
   
char a[MAX];
   memset(a,
0,MAX);
   a[
0]=1;
   
int N,len=1;

   cin
>>N;
 
   
int num;
   
for(int i=2;i<=N;i++)
   
{
        num
=0;
        
for(int j=0;j<len;j++)
       
{
           num
+=i*a[j];
           a[j]
=num%10;
           num
/=10;
        }


        
while(num) { a[len++]=num%10; num/=10; }
     }


     
while(!a[len]) len--;

     
for(int i=len;i>=0;i--) printf("%d",a[i]);

     system(
"PAUSE");
}

posted on 2009-04-09 13:15 C家家 阅读(111) 评论(0)  编辑 收藏

评论

标题  
姓名  
主页
内容   
请输入验证码:
*
  登录  使用高级评论  Top 订阅回复  取消订阅
[使用Ctrl+Enter键可以直接提交]