举一个例子:大学军训的时候,一个队伍,开头的人A想知道这个队伍一共有多少人,但是每个人只能通过旁边的交流,那如何统计呢?
我们可以先找出最后一个人,A可以问旁边的人B是否为最后一个人,B又问下一个人,如此类推,等到了最后一个人,再将号码返回到第一个人A,每往前一个,号码上就+1,第一个人A就知道这个队伍有多少人了。
公式:g(n)=g(n-1)+1;g(1)=1
int AskNumberOfTeams(int n) { if(n == 1) { return 1; } return 1 + AskNumberOfTeams(n-1); }