标题:这个代码发上去说是输出超出限制怎么办
只看楼主
qiujiao
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2018-10-26
得分:0 
这个代码的提交结果是答案错误,可是我运行的答案明明是对的
2018-10-26 17:13
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
那将
for( ; a>0; )
        {
            sum += a/b;
            b += a;
            a = a-1;
        }
        sum += b-1;
改为
for( ; a>=0; )
        {
            sum += a/b;
            b += a;
            a = a-1;
        }
        sum += a+b;
试试,我没法测试
2018-10-27 00:58
qiujiao
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2018-10-26
得分:0 
还是错误
2018-10-27 11:14
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
以下是引用qiujiao在2018-10-27 11:14:23的发言:

还是错误
我来确认一下,你提交的是如下代码吧,没有修改过吧
程序代码:
#include <stdio.h>

double f( double a, double b )
{
    double sum = 0;
    if( a < 0 )
        sum = a + b;
    else if( a == 0 )
        sum = b - 1;
    else
    {
        for( ; a>=0; )
        {
            sum += a/b;
            b += a;
            a = a-1;
        }
        sum += a+b;
    }
    return sum;
}

int main( void )
{
    for( double x,y; scanf("%lf%lf",&x,&y)==2; )
        printf( "%.2f\n", f(x,y) );
}

如果还是结果错误,那你试试递归版
程序代码:
#include <stdio.h>

double f( double x, double y )
{
    return x<0 ? x+y : f(x-1,x+y)+x/y;
}

int main( void )
{
    for( double x,y; scanf("%lf%lf",&x,&y)==2; )
        printf( "%.2f\n", f(x,y) );
}

如果还是不行,那你将网址发给我,我来试试

2018-10-29 10:08
qiujiao
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2018-10-26
得分:0 
正确了,感谢大神的帮助
2018-11-05 13:32



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-490710-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.142841 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved