• PTA之求单链表结点的阶乘和


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

    时间限制: 400ms
    内存限制: 64MB
    代码长度限制: 16KB

    函数接口定义:

    int FactorialSum( List L );
    

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

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

    裁判测试程序样例:

     1 #include <stdio.h>
     2 #include <stdlib.h>
     3 
     4 typedef struct Node *PtrToNode;
     5 struct Node {
     6     int Data; /* 存储结点数据 */
     7     PtrToNode Next; /* 指向下一个结点的指针 */
     8 };
     9 typedef PtrToNode List; /* 定义单链表类型 */
    10 
    11 int FactorialSum( List L );
    12 
    13 int main()
    14 {
    15     int N, i;
    16     List L, p;
    17 
    18     scanf("%d", &N);
    19     L = NULL;
    20     for ( i=0; i<N; i++ ) {
    21         p = (List)malloc(sizeof(struct Node));
    22         scanf("%d", &p->Data);
    23         p->Next = L;  L = p;
    24     }
    25     printf("%d
    ", FactorialSum(L));
    26     return 0;
    27 }
    28 /* 你的代码将被嵌在这里 */

    输入样例:

    3

    5 3 6

    输出样例:

    846

     1 int FactorialSum( List L )
     2 {
     3     List q=L;
     4     int j,x,sum = 0;
     5     while(q != NULL)
     6     {
     7         x=1;
     8         for(j=2;j <= q->Data; j++)
     9             x *= j;
    10         sum+=x;
    11         q = q->Next;
    12     }
    13     return sum;
    14 }

    作者:耑新新,发布于  博客园

    转载请注明出处,欢迎邮件交流:zhuanxinxin@aliyun.com

  • 相关阅读:
    Linux下GCC生成和使用静态库和动态库详解(二)
    make linux内核
    gdb
    GCC动态库和静态库混合使用
    gcc g++ Linux下动态库_静态库
    makefile
    linux线程函数大全
    C++ 中的插入迭代器以及其迭代器适配器
    gcc
    android ScrollView中嵌套GridView,ListView只显示一行的解决办法
  • 原文地址:https://www.cnblogs.com/Arthurian/p/9079263.html
Copyright © 2020-2023  润新知