如何做到一个分数序列和

#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
int main()
{
    int n;
    double sum=0;
    cin>>n;
    for(int i=1;i<=n;++i)
    {
        if(i%2==0)
        {
            sum-=1/(double)(i);
        }
        else
        {
            sum+=1/(double)(i);
        }
    }
    printf("%.4lf",sum);
} 

编写程序,输入n的值,求 1/1 - 1/2 + 1/3 - 1/4 + 1/5 - 1/6 + 1/7 - 1/8 + ... + (-1)n-1·1/n 的值。(来源:noi.openjudge.cn,1.5.30)

时间: 2024-12-13 03:15:28

如何做到一个分数序列和的相关文章

【C语言】有一个分数序列 2/1+3/2+5/3+8/5+13/8+… 求出这个数列前 20 项的和。

#include<stdio.h> int qiuhe() { int i=0; int a=1; int b=1; double t=0; double s=0; for(i=1;i<=20;i++) { t=a+b; s=s+t/a; b=a; a=t; } return s; } int main() { double ret=qiuhe(); printf("%lf",ret); return 0; }

c语言:有一个分数序列: 2/1+3/2+5/3+8/5+13/8+… 求出这个数列前 20 项的和

程序: #include <stdio.h> int main() { double s=0,a=2,b=1; int t,i,n=20;  //改变n的值即可求任意项的和 for (i=1;i<=n;i++) { s=s+a/b;   //将各项累加 t=a; a=a+b;     //将前一项的分子与分母之和作为下一项的分子 b=t;       //将前一项的分子作为下一项的分母 } printf ("%lf\n",s); return 0; } 输出结果: 3

Openjudge-计算概论(A)-求分数序列和

描述: 有一个分数序列 2/1,3/2,5/3,8/5,13/8,21/13,.... 求这个分数序列的前n项之和.输入输入有一行:正整数n.输出输出有一行:分数序列的和(浮点数,精确到小数点后4位). 可以printf("%.4lf\n", a)输出浮点数并精确到小数点后4位. 样例输入 99 样例输出 160.4849 提示最好在程序中使用双精度浮点数(double)记录求得的和.来源计算概论05 思路:首先要找到这段序列的规律:分子=前一个数的分子+分母             

分数序列【VB代码实现】

有一个分数序列 求出这个数列的前20项之和. 代码1 Private Sub Command1_Click() Dim sum As Double Dim a As Integer, b As Integer, t As Integer a = 1 b = 2 sum = 0 For i = 1 To 20 sum = sum + b / a t = a + b a = b b = t Next i Label2.Caption = Str(sum) End Sub 代码2 Private Su

求分数序列的前n项之和

有一个分数序列 2/1,3/2,5/3,8/5,13/8,21/13,.... 求这个分数序列的前n项之和. 输入 测试数据有多组,其第一行为一个正整数k(0<k<=90),表示测试数据的组数.每组测试数据为一行,为单个正整数n(0<n<=90). 样例输入 1 2 输出 每组测试数据单独输出有一行:分数序列的和(精确到小数点后4位). 样例输出 3.5000 时间限制C/C++语言:1000MS其它语言:3000MS 内存限制C/C++语言:65536KB其它语言:589824K

16.有一分数序列 1/2,2/3,3/5,5/8,8/13,13/21,…求出这个序列的前200 项之和

使用向量: #include<iostream>#include<vector>using namespace std;int FenShu(int); int main(){    double sum=0,sum1=0;    for(int i=2;i<=200;i++)    {        sum1+=FenShu(i);    }    sum=sum1+0.5;    cout<<sum<<endl;    return 0;} int

有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。

/** * @author 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和. */ public class Sum { public static void main(String[] args) { double a = 1, b = 1, c = 0, s = 0; for (int i = 0; i < 20; i++) { c = a + b; s = s + c / a; b = a; a = c; } System.out.pri

一道笔试题-给定一个正整数序列,请尝试将它们重新排列使得排列的结果最大。

问题描述:给定一个正整数序列,请尝试将它们重新排列使得排列的结果最大,例如正整数序列为9,31,35,3,7则最大值为9735331. 思路分析:先将正整数序列转换为字符串数组,然后字符串数组进行排序,最后依次输出字符串数组即可.根据题目的要求,两个数字m和n排成的数字mn和nm,如果mn<nm,那么我们应该输出nm,也就是m应该排在n的后面,也就是m<n.反之,如果nm<mn,m排在n的前面,n<m.如果mn==mn,m等于n. 比较函数的定义是本解决方案的关键.这道题其实就是希

range()函数,产生一个整数序列

概述: range(stop) -> range objectrange(start, stop[, step]) -> range object 返回一个对象,产生一个整数序列从开始(包括)到结束(不包括),step表示每次跳跃的间距,默认为1.例如:range(0, 5) 等价于 range(0, 5, 1) 命令行演示: >>> list(range(5))[0, 1, 2, 3, 4]>>> list(range(0, 5, 2))[0, 2, 4]