PTA之求單鏈表結點的階乘和

本題要求實現一個函數,求單鏈表L結點的階乘和。這裏默認全部結點的值非負,且題目保證結果在int範圍內。c++

時間限制: 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 spa

輸出樣例:

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 }

 

 

做者:耑新新,發佈於  博客園code

轉載請註明出處,歡迎郵件交流:zhuanxinxin@foxmail.comblog

相關文章
相關標籤/搜索