【数列】求序列之和——递归
【数列】求序列之和——递归
请使用递归算法求下列序列的前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;
}
【数列】求序列之和——递归相关推荐
- 递归求阶乘之和(动态规划)
求阶乘之和(递归版)(高效) (10 分) 请编写函数,用递归方法求阶乘之和. SumFac(n)=0!+1!+2!+3+⋯+n! 函数原型 double SumFac(int x); 说明:参数 x ...
- 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). ...
- c语言怎么编程已知数的总和,C程序使用递归求自然数之和
C程序使用递归求自然数之和 在此示例中,您将学习使用递归函数查找自然数之和. 要理解此示例,您应该了解以下C语言编程主题: 正数1.2.3 ...称为自然数.下面的程序从用户处获取一个正整数,然后计算 ...
- 最长公共子序列求序列模板提_最长公共子序列
最长公共子序列求序列模板提 Description: 描述: This question has been featured in interview rounds of Amazon, MakeMy ...
- 一个有序数列,序列中的每一个值都能够被2或者3或者5所整除
一个有序数列,序列中的每一个值都能够被2或者3或者5所整除,这个序列的初始值从1开始,但是1并不在这个数列中.求第1500个值是多少? python代码: k = 0 i = 1 list = [] ...
- 无限数列求第n项 java
无限数列求第n项 java 题目描述: 有一个无限长的数字序列:1,2,2,3,3,3,4,4,4,4,5,5,5,5,5,--(数字k在序列中正好出现k次).想知道这个数字序列的第n项是多少? 输入 ...
- Fibonacci数列求余 C语言
Fibonacci数列求余 C语言 问题描述 Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1. 当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是 ...
- 第十届蓝桥杯java B组—试题C 数列求值
文章目录 1.大赛题目 2.文字描述如下 3.详细讲解 4.答案 1.大赛题目 1.图片如下: 2.文字描述如下 试题 C: 数列求值 [问题描述] 给定数列 1, 1, 1, 3, 5, 9, 17 ...
- 数据结构之链表创建一元多项式,求一元多项式之和
数据结构之链表创建一元多项式,求一元多项式之和 前言 对于一元多项式,我们完全可以利用线性表P(a0,a1,a2,-,an)表示,这样的线性表在求两个多项式相加等操作时确实简单,但是多于如下的多项式: ...
最新文章
- Python案例:使用XPath的爬虫
- LeetCode实战:两数相加
- Oracle的登陆问题和初级学习增删改查(省略安装和卸载)
- python数字类型-python数字类型
- Parallel 并发编程实例
- PLinq Lookup ParallelQuery
- python创建项目包
- watch监听vuex内部数据变化
- linux文件目录的管理,Linux文件目录管理
- stylus之内置方法(Built-in Functions)
- 创建局域网内远程git仓库,并将本地仓库push推到远程仓库中
- 智能对联模型太难完成?华为云ModelArts助你实现!手把手教学
- python telnetlib怎么下_Python telnetlib模块使用
- 北京国家开放大学计算机学院,李继先
- vsftpd虚拟用户与匿名用户配合使用
- Java人事面试100问
- 手机模拟器自带root_VMOS Pro Android 手机上的模拟器 (手机版虚拟机)
- 【多媒体】多媒体架构
- 用amber计算dPCA(Dihedral angle principal component analysis)
- C#像素鸟(独自一鸟闯天下)
热门文章
- Linux 多线程开发(附有案例代码)
- 动易安装SF5.9时出现“applicationInitialization”错误的解决方法
- ibus极品五笔切换单字模式
- 已解决关于vmware搭openwrt旁路由 无线网卡设备无法上网
- 如何在本地安装NuGet包.nupkg文件?
- 指挥调度中心如何选择调度台?
- Zabbix监控整合OneAlert报警平台实现邮件、短信、微信、电话多方式报警
- linux中perl的环境变量,在Perl脚本中使用Bash环境变量?
- 哈工大焊接/电封材料科学基础B期末个人复习梳理
- 计算机量子化学计算中HF单位,21世纪高等院校教材·量子化学基础