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

2018-06-21 06:51:16来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

本题要求实现一个函数,求单链表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\n", 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@foxmail.com

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:ocrosoft 1015 习题1.22 求一元二次方程a*x^2 + b*x + c = 0的根

下一篇:QString, Std::string, char *相互转换