• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

李必恒

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

求单链表结点的阶乘和

本题要求实现一个函数,求单链表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; }

int FactorialSum( List L )
{
int sum=0,maxdata;
while(L!=NULL)
{
maxdata=1;
for(int i=1;i<=L->Data;i++)
{
maxdata=maxdata*i;
}
sum=maxdata+sum;
L=L->Next;
}
return sum;
}

 

posted on 2021-07-13 13:31  李必恒  阅读(170)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3