本題要求實現一個函數,求單鏈表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