PTA之求单链表结点的阶乘和
题目描述
本题要求实现一个函数,求单链表L
结点的阶乘和。这里默认所有结点的值非负,且题目保证结果在int
范围内。
时间限制: 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
输出样例:
846
个人代码
思路:
简单粗暴,直接遍历整个list,并且在此过程中计算所有节点的阶乘的值,并相加
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 }
本文来自博客园,作者:Arthurian,转载请注明原文链接:https://www.cnblogs.com/Arthurian/p/9079263.html
欢迎邮件交流:zhuanxinxin@aliyun.com
分类:
编程语言 / C/C++
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)