2012-01-10 10 views
0

最近、私はCodesprint2に参加しました。私は次の質問に解決策を提出することができませんでした。 http://www.spoj.pl/problems/COINTOSS/ 私は、(URL:http://pastebin.com/uQhNh9Rcを)成功した​​ソリューションのいずれかをチェックアウトしjava - codesprint2プログラミングコンテストの回答

を(codesprintリンクはログインが必要なので、私はspojの問題声明へのリンクを掲載している)と、使用されるロジックは私と全く同じです、まだ私はまだ、私はそれを見つけることができませんように誰かが、私が作った何のエラーを教えてくださいすることができれば、私は非常に感謝するでしょう

を「間違った答えを」取得しています。ありがとうございました。

マイコード:

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))); 
} 


} 

}

答えて

0

あなたのsolve()内のロジックを正確に受け入れ溶液と同じであることを思えません。 M >= NのPythonバージョンがテストされていますが、あなたのテストはM == Nです。そのため、プログラムが望みどおりに動作しない入力クラスがあります。

+0

元の問題文には、0 <= m <= nという制約があります – arya

関連する問題