ノードの単一リンクリスト内のPTAについて6-6と階乗
この質問は、単一リンクリストのノードLを見つけ、機能を達成するために必要な、と階乗。ここでは、すべてのデフォルト値は非負ノード、およびint型の範囲内の結果ことを保証する権利を有します。
#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;
}
/* 你的代码将被嵌在这里 */
このタイトル、及び階乗要件では、いずれかのノード、第一、Lが最初に連結されたリストによって、各ノードのいずれかを通過しなければならない、直接、Q = L、最初のノードが得られることが可能です。そして、必要性の階乗を循環した後、最初のノードを取得します。そして、A(初期設定0)プラス階乗うちの数で処理されたノードを歩きます。この問題では、直面する問題は、第二は、階乗の接合部の問題であり、私は突然、Lが最初のノードで見つけることができませんでした、私が始めたということです。また、この問題は、リストの動作モードに私はより身近ました。ここでは、コードの答えは:
int FactorialSum( List L ){
int a=0,b,i,c=1;
List q;
q=L;
while(q){
b=q->Data;
for(i=1;i<=b;i++){
c=c*i;
}
a=a+c;
q=q->Next;
c=1;
}
return a;
}