硬币翻转的总可能结果



对于投掷了'n'次的给定硬币,使用递归找到结果的总可能组合的'count'。我已经使用以下代码成功打印了结果:

public class Main
{
public static void main(String[] args) {
System.out.println("Hello World");
int n=3;
String answer="";

toss(n,answer);
}
public static void toss(int n, String answer){

if(n==0)
{
System.out.println(answer);
return;
}
toss(n-1,answer+"H");
toss(n-1,answer+"T");


}
}

其中n是投掷次数,answer是存储结果组合的字符串

我必须找到我使用此代码但不起作用的组合的计数:

static int toss(int n, String answer, int count){
if(n==0)
return count+1;
toss(n-1,answer+"H",count+1);
toss(n-1,answer+"T",count+1);
}

*如何计算投掷的总结果?

对于ex;对于n=2结果将是:;HH"TT"HT"TH";count:4(如何找到这个?我的代码计数为0(。*

问题是n != 0时不返回任何内容。如果n == 0,只需返回1,然后返回两个递归调用之和else。这给了你:

static int toss(int n, String answer){
if(n == 0) {
System.out.println(answer);
return 1;
}
return toss(n - 1, answer + "H") + toss(n - 1, answer + "T");
}

最新更新