您的位置:首页 > 其它

6-6 求单链表结点的阶乘和(15 分) 本题要求实现一个函数,求单链表L结点的阶乘和。这里默认所有结点的值非负,且题目保证结果在int范围内。

2018-03-25 18:49 801 查看
int FactorialSum( List L )
{
  int max=0,sum=0;
  List p,head;
  head=L;
  p=head;
  while(p!=NULL)
  {
    if(max<p->Data)
    max=p->Data;
    p=p->Next;
  }
  int fa[max+1];
  fa[1]=1;
  for(int i=1;i<max+1;i++)
  fa[i]=fa[i-1]*i;
  p=head;
  while(p!=NULL)
  {
    sum+=fa[p->Data];
    p=p->Next;
  }
  return sum;
}
数据结构体好久没用了,这个题目很新奇。
注意阶乘首项的分配。
阶乘采用数组一次记录最大的完全部阶乘会比较省时间和内存。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐