基础编程题目集 6-6 求单链表结点的阶乘和 (15分)

在这里插入图片描述

#include <stdio.h>
#include <stdlib.h>
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; i < N; i++)
    {
        p = (List)malloc(sizeof(struct Node));
        scanf("%d", &p->Data);
        p->Next = L;
        L = p;
    }
    printf("%d\n", FactorialSum(L));
    return 0;
}
int FactorialSum(List L)
{
    int i, s = 1, ss = 0;
    while (L != NULL)
    {
        for (i = L->Data; i > 0; i--)
        {
            s *= i;
        }
        ss += s;
        L = L->Next;
        s = 1;
    }
    return ss;
}
发布了318 篇原创文章 · 获赞 147 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_44458489/article/details/105401080