C语言OJ项目参考(1992)分数序列

简介: (1992)分数序列 Description 有一个分数序列:2/1, 3/2, 5/3, 8/5, 13/8, …编写程序求出这个序列的前n项之和。 Input 输入只有一个正整数n,1≤n≤10。 Output 输出该序列前n项和,结果保留小数后6位。 Sample Input 3 Sample Output 5.166667 参考解答#include

(1992)分数序列
Description
有一个分数序列:2/1, 3/2, 5/3, 8/5, 13/8, …编写程序求出这个序列的前n项之和。
Input
输入只有一个正整数n,1≤n≤10。
Output
输出该序列前n项和,结果保留小数后6位。
Sample Input
3
Sample Output
5.166667
参考解答

#include <stdio.h>
int main ( )
{
    int m1=2,m2=1, n, t, i;
    double sum=2;
    scanf("%d",&n);
    for(i=2;i<=n;i++)
    {
        t=m1;
        m1=m2+m1;
        m2=t;
        sum+=(double)m1/m2;
    }
    printf("%.6lf", sum);
    return 0;
}

  注:下面的程序,与上面仅sum的数据类型不同,但在OJ平台提交时就是错的。原因是float类型数据的精度不够。float的有效数字位数为6-7位,小数点后就要保留6位,注定了这6位中会有“意外”,故本题在精度方面的要求,必须要取double型。

#include <stdio.h>
int main ( )
{
    int m1=2,m2=1, n, t, i;
    float sum=2;
    scanf("%d",&n);
    for(i=2;i<=n;i++)
    {
        t=m1;
        m1=m2+m1;
        m2=t;
        sum+=(float)m1/m2;
    }

    printf("%.6f", sum);
    return 0;
}
目录
相关文章
|
27天前
|
算法 C语言 C++
【C语言实战项目】三子棋游戏
【C语言实战项目】三子棋游戏
30 1
|
27天前
|
程序员 C语言
【C语言实战项目】猜数字游戏
【C语言实战项目】猜数字游戏
27 0
【C语言实战项目】猜数字游戏
|
1月前
|
C语言
你知道C语言中实现有序序列并序输出的2种方法吗?
你知道C语言中实现有序序列并序输出的2种方法吗?
|
3月前
|
C语言
C语言Oj题判断素数几种方式详解
输入一个数判断它是不是素数,并且不是的情况把它打印出来不是素数。
|
4月前
|
C语言
c语言编程练习题:7-52 求简单交错序列前N项和
c语言编程练习题:7-52 求简单交错序列前N项和
28 0
|
4月前
|
C语言
c语言编程练习题:7-51 求奇数分之一序列前N项和
c语言编程练习题:7-51 求奇数分之一序列前N项和
30 0
|
26天前
|
程序员 C语言
【C语言实战项目】通讯录(动态增容版)
【C语言实战项目】通讯录(动态增容版)
19 0
|
27天前
|
编译器 定位技术 C语言
【C语言实战项目】扫雷游戏
【C语言实战项目】扫雷游戏
26 0
|
2月前
|
存储 关系型数据库 MySQL
C语言/C++实战项目雷霆飞机(代码改进)
C语言/C++实战项目雷霆飞机(代码改进)
|
2月前
|
人工智能 C语言
C语言实战项目(AI代码)
C语言实战项目(AI代码)