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

问题描述

菜鸟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("%.10fn", sum+3.5);
}
return 0;
}

OJ反馈信息:wrong answer

解决方案

不知道你写的为啥不对,我写了一个,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("%.10fn", sum);
        pNode = pNode->pNext;
    }

    return 0;
    }

解决方案二:

帮顶………………嘿嘿

解决方案三:

观察数列规律,然后输入要加的n,然后等于sum,如果输出小数的话就要转化一下,我是这样理解的

解决方案四:

应该是输入输出方式的问题吧

解决方案五:

这个数列的规律是,第一项为2/1,然后分子+分母作为下一个分数的分子,其分子作为下一个分数的分母,依此类推,按这个规律代码如下
double sum = 0, x = 2.0, y = 1, z;
unsigned int n;
scanf("%u", &n);
while(n--)
{
sum += x/y;
z = x;
x += y;
y = z;
}

printf("%.10f", sum);

时间: 2024-11-02 00:36:47

c语言-菜鸟OJ, C语言数简单列求和, 感觉测试没错, 但是wrong answer, 求大神指点的相关文章

java-最简单的struts2程序,总是提示404,求大神指点

问题描述 最简单的struts2程序,总是提示404,求大神指点 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd&qu

java-最简单的aop实例,总是报错,求大神指点

问题描述 最简单的aop实例,总是报错,求大神指点 package cn.itcast.service; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Before; import org.aspectj.lang.annotation.Pointcut; import org.springframework.stereotype.Component; //指明这个类为一个切面 @Asp

指针-新手OJ,C语言 去除字符串中的所有空格模块, 不知为何出错,求大神指点

问题描述 新手OJ,C语言 去除字符串中的所有空格模块, 不知为何出错,求大神指点 作用: 把数组a中的所有空格去除, 并把后面的往前移动.例如: a b c变成:abc 字符指针 *p *q 数组a[] for(p=&a[0]; p!=''; p++)if(*p==' ')for(q=p; *(q+1)!=''; q++)*q=(q+1); //去除a字符串中的空格 但总是不对, 求大神指点. 解决方案 #include<stdio.h>int main(){ char str[20

编程c语言-新手OJ, 找出字符串中出现最多的字母,本机运行正确, 但是wrong answer, 求大神指点

问题描述 新手OJ, 找出字符串中出现最多的字母,本机运行正确, 但是wrong answer, 求大神指点 Description 钟Sir是一个迷信的(superstitious)家伙.他相信每一个字符串(string)里都有一个幸运字符.我们可以通过以下方法找到这个字符.例如,在字符串abbccc中,c 出现的次数最多,所以这个幸运字符就是 c 啦!(>_<) ?(钟Sir的想法好简单啊-) Input 第一行是测试数据的组数n,接下来的每组测试数据占一行,每行数据不超过1000个字符且

简单数字钟-求一基于AT89C52的数字钟设计的C语言程序代码,图已做好,有流程图和项目要求,跪求大神帮忙!!!

问题描述 求一基于AT89C52的数字钟设计的C语言程序代码,图已做好,有流程图和项目要求,跪求大神帮忙!!! 麻烦大神最好能把程序与图匹配符合要求就好了 一会把图和要求发在下面 解决方案 解决方案二: 解决方案三: 解决方案四: 解决方案五: 再次感谢,求帮忙,求助攻,求各种

C语言,寻找二维数组鞍点,代码个人测试正确, 但是wrong answer, 求大神指点

问题描述 C语言,寻找二维数组鞍点,代码个人测试正确, 但是wrong answer, 求大神指点 Description 给定一个海拔平面图,相当于一个二维数组,数组的每个元素表示一个点的海拔高度.请判断该图中是否存在鞍点,如果存在,则输出该鞍点的位置,即行.列坐标. 本题规定鞍点的定义为:该点的值在它所在的那行中是唯一最大的,且该点的值在它所在的那列中是唯一最小的. Input 输入有多个测试用例,如果把每个测试用例看作一个"块",那么,在一个"块"中: 第一行

c语言-C++代码改成C语言代码,没学过C++好多看不懂啊(泪奔······)求大神指点,我用的VC6.0

问题描述 C++代码改成C语言代码,没学过C++好多看不懂啊(泪奔······)求大神指点,我用的VC6.0 代码如下, #include "winsock2.h" #include "Winsnmp.h" #include 这里是string以下都要用 < 和 > 括起来(不知为何不显示=,=) #include vector #include algorithm #include iostream #pragma comment(lib,"

c语言-关于C语言链表的一些问题,代码怎么都运行不成功跪求大神指点

问题描述 关于C语言链表的一些问题,代码怎么都运行不成功跪求大神指点 下面代码主要实现链表的创建,插入,删除,并且能将两个年龄递增链表进行合并成递减链表 然而在插入和删除操作中gets函数无法起作用,strcmp函数也出现位置冲突报错..功力不足实在解决不了..跪求大神解答..(感觉自己写的东西除了上面两个错误应该还有,但是因为位置冲突问题就只能编译到那个地方无法进行下去..我肉眼实在找不出来.. #include<stdio.h> #include<stdlib.h> #incl

超时-c语言求组合数,但是超了,求大神指点!

问题描述 c语言求组合数,但是超了,求大神指点! 我用递归写出了求组合数,c(5,3),c(6,2)之类的能算出来,但是c(1024,512)这种大数就算不出来了,超时很严重,而且取模之后也不行,求大神们指点啊!!谢谢!! 解决方案 它只问多少种,没有让你列出多少种,这是数学问题不是编程问题.直接套公式. 解决方案二: c(1024,512)没有任何算法能做到. C(100, 50)已经达到10^29了,而C(1024,512)几乎是天文数字. 假设计算机每秒能计算1万亿次,每次计算都直接输出一