PAT基礎編程題目-6-6 求單鏈表結點的階乘和

PAT基礎編程題目-6-6 求單鏈表結點的階乘和

題目詳情

在這裏插入圖片描述

題目地址:https://pintia.cn/problem-sets/14/problems/738

解答

C語言版

#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));
		if (p) {
			scanf_s("%d", &p->Data);
			p->Next = L;  
			L = p;
		}
	}
	printf("%d\n", FactorialSum(L));

	return 0;
}

int FactorialSum(List L)
{
	int sum =0, product;
	while(L) {
		product = 1; //乘積
		for (int i = 2; i <= L->Data; i++)
		{
			product = product * i;
		}
		sum = sum + product;
		L = L->Next;
	}
	return sum;
}

在這裏插入圖片描述

C++版

#include<iostream>
using namespace std;

typedef struct Node {
	int Data;
	struct Node* Next;
}Node, * List;

int FactorialSum(List L);
int main() {
	int n;
	cin >> n;
	List L=NULL, p;
	while (n--) {
		p = (Node*)malloc(sizeof(Node));
		if (p) {
			cin >> p->Data;
			p->Next = L;
			L = p;
		}
	}
	cout << FactorialSum(L);
	return 0;
}

int FactorialSum(List L)
{
	int sum = 0, product;
	while (L) {
		product = 1; //乘積
		for (int i = 2; i <= L->Data; i++)
		{
			product = product * i;
		}
		sum = sum + product;
		L = L->Next;
	}
	return sum;
}

在這裏插入圖片描述

Java版

public class Main{
	
	private static class Node {
		int Data;
		Node Next;
	}
	
	private static int FactorialSum(Node L) {
		int sum = 0;
		int product;
		while(L!=null) {
			product = 1;
			for (int i = 2; i <= L.Data; i++) {
				product = product * i;
			}
			sum = sum +product;
			L = L.Next;
		}
		return sum;
	}

	public static void main(String[] args) {
		int n;
		Node L= null;
		Scanner scanner = new Scanner(System.in);
		if(scanner.hasNext()) {
			n = scanner.nextInt();
			for (int i = 0; i < n; i++) {
				Node p = new Node();
				p.Data = scanner.nextInt();
				p.Next = L;
				L = p;
			}
		}
		scanner.close();
		System.out.println(FactorialSum(L));

	}

}

在這裏插入圖片描述

創作不易,喜歡的話加個關注點個贊,謝謝謝謝謝謝!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章