真的太笨了。
我!這個道理和程式設計無關,每人最多取4根,
1+4=5
21=5*4+1
也就是說,只要保證每輪兩方之和是5,那麼4輪後取走20根,最後先取的人必定取最後一根。
第二題:需要用遞推的方式,計算所有必勝必輸的狀態,然後保證每次取火柴都讓對方到達必輸狀態。
所謂必輸就是只剩最後一根,或者無論怎麼取後的結果都是必勝。
大致的思路是:你拿n根(1<=n<=4)火柴,電腦就拿5-n根火柴,只要保證每回合內,你拿的火柴根數+電腦拿的火柴根數=5
,四個回合後,一共拿走20根火柴,肯定還剩1根,那必須是你自己拿,於是電腦就贏了!
#include
void
main()
printf(
"你想要拿幾根火柴(1~4)?");
scanf("%d
",&n);
while(1
)
printf(
"只能取1~4根火柴哦!\n請重新輸入:");
scanf("%d
",&n);
}s=s-n;
if(s==0
)
printf(
"還剩%d根火柴\n
",s);
printf(
"電腦拿了%d根火柴\n
",5-n);
s=s-(5-n);
printf(
"還剩%d根火柴\n
",s);
}while
(s);
printf(
"電腦獲勝!\n");
}
#include #includevoid
fun()
while(count <= 0 || count > 4
); hcs = hcs -count;
}else
//電腦操作
czs++;
}}void
main()
取火柴遊戲
玩完幾把遊戲後。突然想起了乙個比較老的遊戲 取火柴遊戲!遊戲規則簡單 不需要撿裝備,也沒有危險的空投。emm言歸正傳!有n根火柴,每人每次最多取4根火柴,最少取一根火柴。如果某人取到最後一根火柴,那麼恭喜你,輸了!emmm上 void quhuochai last last user if last...
取火柴遊戲
include include include using namespace std float num1 0 float num2 0 struct treenode class tree float chance treenode ptr void run tree tree1 protect...
取火柴遊戲 Nim博弈
好久之前看的sg函式了 好像就記住乙個nim博弈qwq 第一次啊看的時候很迷,現在感覺可以了qwq 首先我們來看乙個其他的遊戲。以下遊戲只有兩個人參與,且足夠聰明 兩個人在一張圓形的桌子上放等大的盤子,最後乙個無法放盤子的人輸掉比賽 很顯然,先手必勝。為什麼?第乙個人可以將盤子放在桌子的中心。然後只...