赞
踩
本题要求实现一个函数,求单链表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;
- }
-
- /* 你的代码将被嵌在这里 */
- 3
- 5 3 6
846
作者: 陈越
单位: 浙江大学
时间限制: 400 ms
内存限制: 64 MB
代码长度限制: 16 KB
编译器 (1)
- int FactorialSum( List L )
- {
- int i, s, sum = 0;
- while(L){
- // printf("%d\n", L->Data);
- s = 1;
- for(i=L->Data; i>1; i--){
- s = s * i;
- }
- sum += s;
- L = L->Next;
- }
- return sum;
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。