面试题 设有n个人围坐一圈并按顺时针方向从1到n编号,从第s个人开始进行1到m的报数, 报数到第m个人, 此人出圈, 再从他的下一个人重新开始1到m的报数,如此进行下去直到所有的人都出圈为止。现

 设有n个人围坐一圈并按顺时针方向从1到n编号,从第s个人开始进行1到m的报数, 报数到第m个人, 此人出圈, 再从他的下一个人重新开始1到m的报数,如此进行下去直到所有的人都出圈为止。现要求按出圈次序,给出这n个人的顺序表p。


#include "stdafx.h"
#include <stdlib.h>
#include <stdio.h>

typedef struct node
{
int data;
struct node* next;
}LNode;

LNode* Create(int n, int k) //创建循环链表
{
int start=k-1;
if(start==0) start = n;
LNode *s, *p, *L=NULL, *t;

while(n!=0)
{
s = (LNode*)malloc(sizeof(LNode));
if(L==NULL) p=s;
if(n==start) t=s;
s->data = n;
s->next = L;
L=s;
n--;
}
p->next = L;
return t;
}

LNode* GetNode(LNode *p)
{
LNode *q;
for(q=p;q->next!=p;q=q->next);
q->next = p->next;
free (p);
return (q);
}

int Print(LNode *p, int m)
{
int i;
printf("出队编号:\n");
while(p->next!=p)
{
for(i=1;i<=m;i++)
{
p=p->next;
}
printf("%3d",p->data);
p = GetNode(p);
}
printf("%3d\n", p->data);
return 0;
}

int _tmain(int argc, _TCHAR* argv[])
{
LNode *p;
int n,k,m;

do
{
printf("输入总人数:");
scanf("%d",&n);
}while(n<0);

do
{
printf("输入开始人的序号1~%d:",n);
scanf("%d",&k);
}while(k<=0||k>n);

do
{
printf("输入间隔数字:");
scanf("%d",&m);
}while(m<=0);

p=Create(n,k);
Print(p,m);

return 0;
}

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
腾讯面试题中的 "从0到1" 是一个常见的问题,它意味着从零开始建立一个完整的系统或项目。这个问题的目的是考察你在实践中解决问题的能力以及你对整个流程的理解。 回答这个问题时,你可以按照以下步骤进行: 1. 理解需求:首先,你需要明确你要构建的系统或项目的需求是什么。这包括功能需求、性能需求和用户需求等。你可以通过与相关人员沟通和分析市场情况来获取这些需求。 2. 规划和设计:在明确需求后,你需要进行系统的规划和设计。这包括确定系统的整体架构、模块划分、技术选型等。在这个阶段,你需要考虑到系统的可扩展性、可维护性和可测试性等方面。 3. 开发和实:在规划和设计完成后,你可以开始具体的开发工作。这包括编写代码、实功能、进行单元测试和集成测试等。在这个阶段,你需要根据需求和设计进行迭代开发,并及时调整和修复问题。 4. 验收和部署:完成开发后,你需要进行系统的验收和部署工作。这包括与用户或相关人员进行沟通,确保系统满足需求,并进行正式部署。在这个阶段,你需要进行系统的功能测试、性能测试和安全性评估等。 5. 运维和优化:系统上线后,你需要进行系统的监控和运维工作。这包括监测系统的运行状态、处理用户反馈和进行系统的优化和升级等。 总结起来,从0到1的过程是一个从需求理解到系统部署运行的全过程,需要综合考虑各种因素,包括技术、设计、开发、测试、运维等。在回答面试题时,你可以根据你的实际经验和项目经历来展示你的能力和经验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值