设为首页 加入收藏

TOP

用字符串实现1000以内阶乘
2014-03-10 13:04:19 来源: 作者: 【 】 浏览:170
Tags:字符串 实现 1000 以内

  用字符串数组实现的1000以内的大数阶乘:

  #include

  #include

  int max(int x,int y)

  {

  return x>y x:y;

  }

  int main()

  {

  int n,i,j,m,t,b,l;

  while(scanf("%d",&n),n>0)

  {

  int buf[3000]={1},t=1;

  char st ;

  for(i=2;i<=n;i++)

  {

  int c=0;

  for(j=0;j

  {

  b=buf[j]*i+c;

  c=b/10;

  buf[j]=b%10;

  itoa(c,st,10);

  t=(c==0 t:max(j+1+strlen(st),t));

  // printf("i=%d buf[%d]=%d b=%d t=%d\n",i,j,buf[j],b,t);

  }

  }

  for(i=t-1;i>=0;i--)

  printf("%d",buf[i]);

  printf("\n");

  }

  return 0;

  }

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇c语言迷宫最短路径 下一篇c / c + +&n..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: