本题要求实现一个函数,求单链表L结点的阶乘和。这里默认所有结点的值非负,且题目保证结果在int范围内。
函数接口定义:
int FactorialSum( List L );
其中单链表List的定义如下:
typedef struct Node *PtrToNode;
struct Node {
int Data;
PtrToNode Next;
};
typedef PtrToNode List;
裁判测试程序样例:
#include
#include
typedef struct Node *PtrToNode;
struct Node {
int Data;
PtrToNode Next;
};
typedef PtrToNode List;
int FactorialSum( List L );
int main()
{
int N, i;
List L, p;
scanf("%d", &N);
L = NULL;
for ( i=0; iData);
p->Next = L; L = p;
}
printf("%dn", FactorialSum(L));
return 0;
}
输入样例:
3
5 3 6
输出样例:
846
3 5 3 6
输出样例:
846
int FactorialSum( List L )
{
PtrToNode p;
int i,sum=0;
for(p=L;p!=NULL;p=p->Next)
{
int t=1;
for(i=1;i<=p->Data;i++)
{
t*=i;
}
sum+=t;
}
return sum;
}



