qq_32653757 2015-11-17 01:42 采纳率: 76.9%
浏览 1826
已采纳

菜鸟OJ, C语言数简单列求和, 感觉测试没错, 但是wrong answer, 求大神指点

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

Input
多测试用例,每个测试用例一行,每行是一个正整数n

Output
为每个测试用例单独输出一行:该数列的前n项之和。结果均保留小数点后10位。

Sample Input
1
2
3

Sample Output
2.0000000000
3.5000000000

5.1666666667

#include
int main(void){
double i, n, j, x, sum, tem, x1, x2, y1, y2, y;
while(scanf("%lf", &n)!=EOF&&n>=0){
x1=2; x2=3; y1=1; y2=2; sum=0;

if(n==0) sum=-3.5;
else if(n==1) sum=-1.5;
else if(n==2) sum=0;
else
for(i=1; i<=n-2; i++){
x=x1+x2; x2=x1; x1=x; y=y1+y2; y2=y1; y1=y;
sum=sum+x/y;
}

printf("%.10f\n", sum+3.5);
}
return 0;
}

OJ反馈信息:wrong answer

  • 写回答

5条回答 默认 最新

  • yangbo50304 2015-11-17 03:04
    关注

    不知道你写的为啥不对,我写了一个,c语言的

     struct Node
    {
        double number;
        Node* pNext;
        Node()
        {
            number = 0;
            pNext = NULL;
        }
    };
    int main()
    {
        int n = -1;
        Node* pNode = new Node;
        Node* pHead = pNode;
        Node* pPre = pNode;
        while (scanf_s("%d", &n) != EOF)
        {
            pNode->number = n;
            Node* pNext = new Node;
            pNode->pNext = pNext;
            pPre = pNode;
            pNode = pNext;
        }
    
        delete pNode;
        pPre->pNext = NULL;
        pNode = pHead;
        double sum = 0.0;
        while (pNode->pNext != NULL)
        {
            double d = pNode->pNext->number / pNode->number; 
            sum += d;
            printf("%.10f\n", sum);
            pNode = pNode->pNext;
        }
    
        return 0;
        }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 数学的三元一次方程求解
  • ¥20 iqoo11 如何下载安装工程模式
  • ¥15 本题的答案是不是有问题
  • ¥15 关于#r语言#的问题:(svydesign)为什么在一个大的数据集中抽取了一个小数据集
  • ¥15 C++使用Gunplot
  • ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 蓝桥杯单片机第十三届第一场,整点继电器吸合,5s后断开出现了问题