早教吧 育儿知识 作业答案 考试题库 百科 知识分享

一百多个小朋友围成一圈,并从1开始依次编号,如果从1号开始1-2报数,凡报1的退出圏外,报2的留下,这样循环到剩下最后一人时,剩下的是44号,问,原来有多少个小朋友?

题目详情
一百多个小朋友围成一圈,并从1开始依次编号,如果从1号开始1-2报数,凡报1的退出圏外,报2的留下,这样循环到剩下最后一人时,剩下的是44号,问,原来有多少个小朋友?
▼优质解答
答案和解析
答案是54,代码如下
#include
#include
using namespace std;
int main()
{
\x09int num, i;
\x09for (num = 44;;++num)
\x09{
\x09\x09list ilist;
\x09\x09for (i = 1; i 1)
\x09\x09{
\x09\x09\x09list::iterator tm = p;
\x09\x09\x09tm++;
\x09\x09\x09if (tm == ilist.end())
\x09\x09\x09{
\x09\x09\x09\x09tm = ilist.begin();
\x09\x09\x09}
\x09\x09\x09ilist.erase(p);
\x09\x09\x09p = tm;\x09
\x09\x09\x09p++;
\x09\x09\x09if (p == ilist.end())
\x09\x09\x09{
\x09\x09\x09\x09p = ilist.begin();
\x09\x09\x09}
\x09\x09}
\x09\x09if (*p == 44)
\x09\x09{
\x09\x09\x09cout
看了一百多个小朋友围成一圈,并从1...的网友还看了以下: