当前位置: 首页 > article >正文

02.03 递归运算

使用递归求出 1 + 1/3 -1/5 + 1/7 - 1/9 +... + 1/n的值。

1>程序代码
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <pthread.h>
#include <semaphore.h>
#include <wait.h>
#include <signal.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <sys/socket.h>
#include <sys/ipc.h>
#include <sys/sem.h>
#include <semaphore.h>
#include <sys/msg.h>
#include <sys/shm.h>
#include <sys/un.h>

typedef struct sockaddr_in addr_in_t;
typedef struct sockaddr addr_t;
typedef struct sockaddr_un addr_un_t;

// 定义递归函数
double calculate(int n) 
{
    // 递归终止条件
    if (n == 1) 
	{
        return 1.0; // 当 n 为 1 时,直接返回 1.0
    } 
	else if (n == 3) 
	{
        return 1.0 + 1.0 / 3; // 当 n 为 3 时,返回 1 + 1/3
    } 
	else 
	{
        // 递归调用,计算从 1 到 n-2 的序列值
        double previousResult = calculate(n - 2);

        // 判断当前项的符号
        double currentTerm = 1.0 / n; // 当前项的绝对值
        if ((n - 1) % 4 == 0) 
		{
            currentTerm = -currentTerm; // 如果 n-1 是 4 的倍数,符号为负
        }

        // 将当前项加到之前的结果中
        return previousResult + currentTerm;
    }
}

int main(int argc, const char *argv[]) 
{
    int n;
    printf("请输入一个正奇数n: ");
    scanf("%d", &n);

    // 检查输入是否为正奇数
    if (n <= 0 || n % 2 == 0) 
	{
        printf("输入无效,请输入一个正奇数。\n");
    } else 
	{
        double result = calculate(n);
        printf("计算结果为: %.10f\n", result);
    }

    return 0;
}
2>运行效果


http://www.kler.cn/a/531875.html

相关文章:

  • 为AI聊天工具添加一个知识系统 之85 详细设计之26 批流一体式 与数据提取器
  • 【面经】字节南京一面部分题目记录
  • SAP HCM 回溯分析
  • 【leetcode练习·二叉树拓展】归并排序详解及应用
  • Leetcode 8283 移除排序链表中的重复元素
  • 深入理解linux中的文件(上)
  • 中间件漏洞之CVE-2024-53677
  • C++ 游戏开发:完整指南
  • 浅谈《图解HTTP》
  • Baklib如何在知识管理领域成为领军者与六款产品的综合评析
  • Skyeye 云 VUE 版本 v3.15.6 发布
  • [Java]抽象类
  • 【Three.js+React】教程002:添加lil-gui控制器和加载GLTF模型
  • 股票入门知识
  • 文字显示省略号
  • 如何创建折叠式Title
  • 探秘Linux IO虚拟化:virtio的奇幻之旅
  • HTTP异步Client源码解析
  • 01:安装和部署
  • Alibaba grpc Dubbo view
  • AMBA总线学习4--AHB-lite总线
  • 读书笔记 | 《最小阻力之路》:用结构思维重塑人生愿景
  • Deepseek-R1 和 OpenAI o1 这样的推理模型普遍存在“思考不足”的问题
  • 41【语言的编码架构】
  • 单机性能调优中的程序优化
  • Kotlin 使用 Springboot 反射执行方法并自动传参