美文网首页
6-6 求单链表结点的阶乘和

6-6 求单链表结点的阶乘和

作者: Dr_Jagger | 来源:发表于2018-04-05 17:11 被阅读0次

6-6 求单链表结点的阶乘和(15 分)

本题要求实现一个函数,求单链表L结点的阶乘和。这里默认所有结点的值非负,且题目保证结果在int范围内。
函数接口定义:

int FactorialSum( List L );

其中单链表List的定义如下:

typedef struct Node *PtrToNode;
struct Node {
    int Data; /* 存储结点数据 */
    PtrToNode Next; /* 指向下一个结点的指针 */
};
typedef PtrToNode List; /* 定义单链表类型 */

裁判测试程序样例:

#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 sum = 0;
  while(L != NULL) {
    int fac = 1;
    for(int i=L->Data; i>1; i--){
      fac *= i; 
    }
    sum +=fac;
    L = L -> Next;
  }
  return sum;
}

输入样例:

3
5 3 6

输出样例:

846

相关文章

  • 6-6 求单链表结点的阶乘和

    6-6 求单链表结点的阶乘和(15 分) 本题要求实现一个函数,求单链表L结点的阶乘和。这里默认所有结点的值非负,...

  • 【MAC 上学习 C++】Day 61-1. 6-6 求单链表结

    6-6 求单链表结点的阶乘和 (15 分) 1. 题目摘自 https://pintia.cn/problem-s...

  • 线性表最值问题

    找最小值 找最大值 顺序表求最大值 顺序表求最小值 带头结点单链表求最大值 带头结点单链表求最小值 q是 最大值/...

  • 数据结构-单链表学习目录

    1.单链表的基本操作 2.求单链表的长度 3.判断单链表是否为空 4.查找单链表中倒数第K个结点 5.单链表的反转...

  • 链表算法归纳

    1.单链表反转 2.链表中环的检测 3.两个有序的链表合并 4.删除链表倒数第n个结点 5.求链表的中间结点

  • 常见算法总结

    链表 单链表反转链表中环的检测两个有序的链表合并删除链表倒数第 n 个结点求链表中间第n个节点

  • 线性表元素插入和删除

    单链表(链式存储结构)插入 单链表(链式存储结构)删除 有头结点的单链表在开始结点前插入元素等同在头结点后插入元素...

  • 链表基本操作

    1、删除单链表节点 2、插入单链表结点 单链表具体实现

  • 单链表的操作

    单链表代码定义 单链表的操作 初始化单链表 插入结点 注: L为插入的单链表,node为将要插入的结点 前插法 尾...

  • 单链表-带头结点

    带头结点的单链表是指,在单链表的首元结点之前增加一个特殊的结点,称为头结点。头结点的作用:使所有链表(包括空表)的...

网友评论

      本文标题:6-6 求单链表结点的阶乘和

      本文链接:https://www.haomeiwen.com/subject/gxrdhftx.html