【数列】求序列之和——递归

请使用递归算法求下列序列的前n项之和。
1 + 1/2 - 1/3 + 1/4 -1/5 ......

输入:

n

输出:

1 + ∑ m = 2 n ( − 1 ) m m − 1 1 + \sum_{m=2}^{n} {(-1)^m m^{-1}} 1+∑m=2n​(−1)mm−1

样例:

序号 测试输入 期待的输出 额外进程
1 1↵ 1↵ 0
2 2↵ 1.500000↵ 0
3 3↵ 1.166667↵ 0

思路

首先假设我们有递归函数F(n)返回值为 1 + ∑ m = 2 n ( − 1 ) m m − 1 1 + \sum_{m=2}^{n} {(-1)^m m^{-1}} 1+∑m=2n​(−1)mm−1
然后观察F(n)和F(n+1)的关系:
F ( n ) = { = 1 , 当 n = 1 = F ( n − 1 ) + 1 n , 当 n % 2 = = 0 = F ( n − 1 ) − 1 n , 当 n % 2 ! = 0 F(n)=\left\{\begin{matrix} =1,当 n=1\\ \\ =F(n-1)+\frac{1}{n},当n\%2==0\\ \\ =F(n-1)-\frac{1}{n},当n\%2!=0 \end{matrix}\right. F(n)=⎩ ⎨ ⎧​=1,当n=1=F(n−1)+n1​,当n%2==0=F(n−1)−n1​,当n%2!=0​

代码

#include <stdio.h>  double Sum(double n)
{if (n == 1)return 1;else if (n % 2 == 0)return 1 / n + Sum(n - 1);else if (n % 2 == 1)return -1 / n + Sum(n - 1);
}int main()
{double n;scanf("%lf", &n);getchar();double y = Sum(n);if (y == (int)y)printf("%d\n", (int)y);elseprintf("%f\n", y);return 0;
}

【数列】求序列之和——递归相关推荐

  1. 递归求阶乘之和(动态规划)

    求阶乘之和(递归版)(高效) (10 分) 请编写函数,用递归方法求阶乘之和. SumFac(n)=0!+1!+2!+3+⋯+n! 函数原型 double SumFac(int x); 说明:参数 x ...

  2. fibonacci斐波那契数列详解 递归求Fn非递归求Fn求n最近的斐波那契数

    斐波那契fibonacci 斐波那契额数列即前两项F(0)和F(1)都是1,之后的每一项都是前两项相加和即F(3)=2,F(4)=3,F(5)=5; 通项公式:F(n+2)=F(n+1)+F(n). ...

  3. c语言怎么编程已知数的总和,C程序使用递归求自然数之和

    C程序使用递归求自然数之和 在此示例中,您将学习使用递归函数查找自然数之和. 要理解此示例,您应该了解以下C语言编程主题: 正数1.2.3 ...称为自然数.下面的程序从用户处获取一个正整数,然后计算 ...

  4. 最长公共子序列求序列模板提_最长公共子序列

    最长公共子序列求序列模板提 Description: 描述: This question has been featured in interview rounds of Amazon, MakeMy ...

  5. 一个有序数列,序列中的每一个值都能够被2或者3或者5所整除

    一个有序数列,序列中的每一个值都能够被2或者3或者5所整除,这个序列的初始值从1开始,但是1并不在这个数列中.求第1500个值是多少? python代码: k = 0 i = 1 list = [] ...

  6. 无限数列求第n项 java

    无限数列求第n项 java 题目描述: 有一个无限长的数字序列:1,2,2,3,3,3,4,4,4,4,5,5,5,5,5,--(数字k在序列中正好出现k次).想知道这个数字序列的第n项是多少? 输入 ...

  7. Fibonacci数列求余 C语言

    Fibonacci数列求余 C语言 问题描述 Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1. 当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是 ...

  8. 第十届蓝桥杯java B组—试题C 数列求值

    文章目录 1.大赛题目 2.文字描述如下 3.详细讲解 4.答案 1.大赛题目 1.图片如下: 2.文字描述如下 试题 C: 数列求值 [问题描述] 给定数列 1, 1, 1, 3, 5, 9, 17 ...

  9. 数据结构之链表创建一元多项式,求一元多项式之和

    数据结构之链表创建一元多项式,求一元多项式之和 前言 对于一元多项式,我们完全可以利用线性表P(a0,a1,a2,-,an)表示,这样的线性表在求两个多项式相加等操作时确实简单,但是多于如下的多项式: ...

最新文章

  1. Python案例:使用XPath的爬虫
  2. LeetCode实战:两数相加
  3. Oracle的登陆问题和初级学习增删改查(省略安装和卸载)
  4. python数字类型-python数字类型
  5. Parallel 并发编程实例
  6. PLinq Lookup ParallelQuery
  7. python创建项目包
  8. watch监听vuex内部数据变化
  9. linux文件目录的管理,Linux文件目录管理
  10. stylus之内置方法(Built-in Functions)
  11. 创建局域网内远程git仓库,并将本地仓库push推到远程仓库中
  12. 智能对联模型太难完成?华为云ModelArts助你实现!手把手教学
  13. python telnetlib怎么下_Python telnetlib模块使用
  14. 北京国家开放大学计算机学院,李继先
  15. vsftpd虚拟用户与匿名用户配合使用
  16. Java人事面试100问
  17. 手机模拟器自带root_VMOS Pro Android 手机上的模拟器 (手机版虚拟机)
  18. 【多媒体】多媒体架构
  19. 用amber计算dPCA(Dihedral angle principal component analysis)
  20. C#像素鸟(独自一鸟闯天下)

热门文章

  1. Linux 多线程开发(附有案例代码)
  2. 动易安装SF5.9时出现“applicationInitialization”错误的解决方法
  3. ibus极品五笔切换单字模式
  4. 已解决关于vmware搭openwrt旁路由 无线网卡设备无法上网
  5. 如何在本地安装NuGet包.nupkg文件?
  6. 指挥调度中心如何选择调度台?
  7. Zabbix监控整合OneAlert报警平台实现邮件、短信、微信、电话多方式报警
  8. linux中perl的环境变量,在Perl脚本中使用Bash环境变量?
  9. 哈工大焊接/电封材料科学基础B期末个人复习梳理
  10. 计算机量子化学计算中HF单位,21世纪高等院校教材·量子化学基础