首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java - codesprint2编程竞赛答案

java - codesprint2编程竞赛答案
EN

Stack Overflow用户
提问于 2012-01-10 13:42:36
回答 1查看 354关注 0票数 0

我最近参加了Codesprint2。我无法提交以下问题的解决方案。http://www.spoj.pl/problems/COINTOSS/ (我已经在spoj上发布了问题陈述的链接,因为代码印记链接需要登录)

我检查了一个成功的解决方案( url:http://pastebin.com/uQhNh9Rc ),使用的逻辑与我的完全相同,但我仍然得到“错误的答案”。

如果有人能告诉我我犯了什么错误,我会非常感谢,因为我找不到它。谢谢。

我的代码:

代码语言:javascript
复制
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.text.DecimalFormat;
import java.util.StringTokenizer;


public class Solution
{

static double solve( int n, int m )
{
    if( m==n )
        return 0;

    if( m==0 )
        return ( Math.pow( 2, n+1 ) - 2 );

    else
    {
        double res = 1 + ( Double )(  solve( n, m+1 ) + solve( n, 0 ))/2;
        return res;
    }
    }


public static void main( String[] args ) throws IOException
{

BufferedReader br = new BufferedReader( new InputStreamReader( System.in ));
int n, m;

int t = Integer.parseInt( br.readLine() );
StringTokenizer tok;
String s;

for( int T=0; T<t; T++ )
{
    s = br.readLine();
    tok = new StringTokenizer( s );

    n = Integer.parseInt( tok.nextToken() );
    m = Integer.parseInt( tok.nextToken() );

    DecimalFormat df = new DecimalFormat();
    df.setMaximumFractionDigits(2);
    df.setMinimumFractionDigits(2);

    System.out.println( df.format ( solve( n, m ) ));
}


}

}

EN

回答 1

Stack Overflow用户

发布于 2012-01-10 13:54:54

您的solve()中的逻辑似乎与公认的解决方案并不完全相同。Python版本针对M >= N进行测试,而您的版本针对M == N进行测试,因此有一整类输入会导致您的程序无法按预期运行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8799052

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档