题目
实现一个函数,求单链表L结点的阶乘和。结点的值非负
举例
解析
定义新指针p,遍历链表同时运用for循环计算每个结点的阶乘,依次相加。
阶乘计算代码
int main(){
int n,a=1;//n表示阶乘数,a表示阶乘
for(int i=1;i<=n;i++)
a=a*i;
return a;
}
求单链表L结点的阶乘和C语言代码
int FactorialSum( List L )
{
int sum=0,a=1,i;//a是每个结点的阶乘和数,sum是总和,i为当前结点数据
List p=L;//定义p指针
for(;p!=NULL;p=p->Next){
i=p->Data;
for(int n=1;n<=i;n++){
a=a*n;
}
sum+=a;
a=1;
}
return sum;
}
易错点:单链表for循环写法;每次循环对a的重新赋值。