CSDN 英雄会 编程比赛
题目 报数游戏(2)
地址 http://hero.csdn.net/
代码挂上 gpl
题目详情
N个人(编号1-N),站成一排,进行报数游戏。报数过程可能进行很多轮,有如下规则:
(1) 如果剩余人数不超过3个人,则游戏结束。
(2) 大家报数,然后留下报奇数的人继续游戏,或者留下报偶数的人继续游戏。
重复如此(1)(2)两步骤,到游戏结束。
问:最终剩下的三人组有多少种情况?(注意是三人组,例如如果最后剩下2个或者1个人,不计入结果中)。
输入n, (0
#includeint howmany(int x) { static int a;//3人组的数量 if(x>3)//当人数大于3时,取子列 { if(x%2==0)//当人数为偶数时 { howmany(x/2);//取其中的奇数 howmany(x/2);//取其中的偶数 } else//当人数为奇书时 { howmany(x/2+1);//取其中的奇数 howmany(x/2);//取其中的偶数 } } else if(x==3)//当人数为3时,三人组的数量加1 a++; return a; } //start 提示:自动阅卷起始唯一标识,请勿删除或增加。 int main(void) { printf("%d",howmany(7)); return 0; } //end //提示:自动阅卷结束唯一标识,请勿删除或增加。