n个人围成一圈(编号为1-n),从第1号的人开始从1报数,凡报到3的倍数的人离开圈子,然后再数下去,直到最后只剩一个人为止。问当n=17时,剩下的人是多少号

答案大类:病案信息技术 小类:病案信息技术 2024-12-14 07:00:51

n个人围成一圈(编号为1-n),从第1号的人开始从1报数,凡报到3的倍数的人离开圈子,然后再数下去,直到最后只剩一个人为止。问当n=17时,剩下的人是多少号

答案:弄个三元数组,baia[x][y][z],x保存它的原序号du(即1~n),y保存zhi数数时的序号(即1、2、3),z保存该数是否曾为3(初始值为0,成为3拨为1)。先令m=n,再嵌套循环,外循环判断m是否为1,为1即得到结果跳出循环,不是则进入内循环,并分类讨论(先判断z是否为1,是的话下一个),关键代码如下if(z!=1){if(x=n){if(y!=3){x=1;y++;}else{x=1;m--;y=1;z=1;}}else{if(y!=3){x++;y++;}else{x++;m--;y=1;z=1;}}}else{if(x=n){x=1;}else{x++;}}最后输出X的值。

版权声明

声明:有的资源均来自网络转载,版权归原作者所有,如有侵犯到您的权益 请联系本站我们将配合处理!

分享: