對于被拋“n”次的給定硬幣,使用遞回找到所有可能的結果組合的“計數”。我已經使用以下代碼成功列印了結果:
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);
}
*如何計算投擲的總結果數?
例如;對于 n =2 結果將是:“HH”、“TT”、“HT”、“TH”計數:4(如何找到這個?我的代碼將計數設為 0)。*
uj5u.com熱心網友回復:
問題是當n != 0. 您可以做的只是回傳 1 ifn == 0并回傳兩個遞回呼叫的總和 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");
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/507860.html
上一篇:遞回(一種子集總和,但不完全)-如果可以以確切的價格購買筆,則為真,否則為假
下一篇:在GO中遞回檢索ID切片
