2025-03-08 学习记录--C/C++-PTA 习题10-2 递归求阶乘和

合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。💪🏻

一、题目描述 ⭐️



二、代码(C语言)⭐️

c 复制代码
#include <stdio.h>

double fact( int n );
double factsum( int n );

int main()
{
    int n;

    scanf("%d",&n);
    printf("fact(%d) = %.0f\n", n, fact(n));
    printf("sum = %.0f\n", factsum(n));
        
    return 0;
}

/* 你的代码将被嵌在这里 */
// 递归实现 n 的阶乘
double fact(int n) {
    return n == 0 ? 1 : n * fact(n - 1);
}

// 实现阶乘和
double factsum(int n) {
    double sum = 0; // 使用 double 类型避免精度丢失
    for (int i = 1; i <= n; i++) {
        sum += fact(i); // 累加每个数的阶乘
    }
    return sum; // 返回阶乘和
}


相关推荐
黑客思维者34 分钟前
《我是如何用C语言写工控系统的漏洞和Bug》连载(1)内容大纲
c语言·bug·工控漏洞
j_xxx404_1 小时前
数据结构:栈和队列力扣算法题
c语言·数据结构·算法·leetcode·链表
南莺莺1 小时前
假设一个算术表达式中包含圆括号、方括号和花括号3种类型的括号,编写一个算法来判别,表达式中的括号是否配对,以字符“\0“作为算术表达式的结束符
c语言·数据结构·算法·
Jayyih2 小时前
嵌入式系统学习DAY28(网络编程)
网络·学习·tcp/ip
dbdr09012 小时前
Linux 入门到精通,真的不用背命令!零基础小白靠「场景化学习法」,3 个月拿下运维 offer,第二十六天
linux·运维·服务器·网络·python·学习
大白的编程日记.2 小时前
【Linux学习笔记】信号的深入理解之软件条件产生信号
linux·笔记·学习
buyutang_2 小时前
C/C++ Linux系统编程:线程控制详解,从线程创建到线程终止
linux·c语言·c++·学习
jiaway2 小时前
【C语言】第一课 环境配置
c语言·开发语言
yzx9910132 小时前
图像去雾:从暗通道先验到可学习融合——一份可跑的 PyTorch 教程
人工智能·pytorch·学习
Qiang_san3 小时前
GNU Make | C/C++项目自动构建入门
c语言·c++·gnu