3.20パンチ

ノードの単一リンクリスト内の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;
 
} 
リリース6元記事 ウォンの賞賛0 ビュー21

おすすめ

転載: blog.csdn.net/Ricardo_Joker/article/details/104997016