| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 444 人关注过本帖
标题:关于50人数数问题。
只看楼主 加入收藏
七夜之华
Rank: 3Rank: 3
来 自:China
等 级:论坛游侠
威 望:5
帖 子:82
专家分:103
注 册:2014-9-7
结帖率:100%
收藏
 问题点数:0 回复次数:2 
关于50人数数问题。
50个人围成一团,从第一个人开始数数。数到5之后那个人出去,接着数,写出所有人得出列顺序、
附加代码:
#include<iostream>
#include<iomanip>
using namespace std;
typedef struct LNode
{
        int number;
        struct LNode *next;
}LinkList;
int  main()
{
      int i,outp;
      LinkList *head = (LinkList *)malloc(sizeof(LinkList));
      LinkList *p = head;
      head->number = 1;
      //第一个人编号为1 head->next = head;
      for (i = 2; i <= 50; i++)
       {
             //编号,创建循环单链表
              LinkList *q = (LinkList *)malloc(sizeof(LinkList));
               q->number = i;  p->next = q;  p = q;  if (i == 50)
                {   
                    q->next = head;  
                }
       }
       p = head; i = 1; outp = 0;
                    //计出圈人数
                    while (outp != 50)
       {
                    p = p->next;  
                    i++;
                    if (i == 4)
                    {
                    cout<<p->next->number<<setw(4); //跳出一个人  
                    p->next = p->next->next;  
                    p = p->next;
                    i = 1;   
                    outp++;
                    }
                    
       }
   system("pause");
  return 0;
}
   
搜索更多相关主题的帖子: include number 
2015-04-14 15:38
诸葛欧阳
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:流年
等 级:贵宾
威 望:82
帖 子:2790
专家分:14619
注 册:2014-10-16
收藏
得分:0 
约瑟夫环?

一片落叶掉进了回忆的流年。
2015-04-14 21:47
yangfrancis
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:141
帖 子:1510
专家分:7661
注 册:2014-5-19
收藏
得分:0 
看要求很像以前遇到过的猴子选大王
#include<iostream>
using namespace std;
int main()
{
    short i,num,sum=0;
    bool discard[50];
    for(i=0;i<50;i++)
        discard[i]=false;
    num=1;
    for(i=0;i<50;i++)
    {
        if(num<5)
        {
            if(!discard[i])
                num++;
        }
        else
        {
            if(!discard[i])
            {
                discard[i]=true;sum++;
                cout<<i+1<<"\t";
                num=1;
            }
        }
        if(i==49)
            i=-1;
        if(sum>=50)
            break;
    }
    return 0;
}
2015-04-15 18:38
快速回复:关于50人数数问题。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.037596 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved