社区
数据结构与算法
帖子详情
几个面试题请教一下
zhaoxjpig
2004-12-17 11:45:21
1. 编写一个递归函数, 使之能输出下图所示结果:
1
1 2 1
1 2 3 2 1
1 2 3 4 3 2 1
1 2 3 4 5 4 3 2 1
2.设有n个人依次围成一圈, 从第1个人开始报数, 数到第m个人出列, 然后从出列的下一个人开始报数, 数到第m个人又出列, …, 如此反复到所有的人全部出列为止. 设n 个人的编号分别为1, 2, …, n, 打印出出列的顺序.
...全文
429
14
打赏
收藏
几个面试题请教一下
1. 编写一个递归函数, 使之能输出下图所示结果: 1 1 2 1 1 2 3 2 1 1 2 3 4 3 2 1 1 2 3 4 5 4 3 2 1 2.设有n个人依次围成一圈, 从第1个人开始报数, 数到第m个人出列, 然后从出列的下一个人开始报数, 数到第m个人又出列, …, 如此反复到所有的人全部出列为止. 设n 个人的编号分别为1, 2, …, n, 打印出出列的顺序.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
billazw
2005-04-23
打赏
举报
回复
什么公司出这样的题哟??
哈哈 晕了
penghongxia
2005-01-05
打赏
举报
回复
[第二道题目]
刚刚帮你写了一个,完全是凭兴趣,我这里没C编辑器,没调试,你自己去调试看看,应该没什么问题。
#include<stdio.h>
#define n 50;
main()
{
int i,j=0; //j 用来标志出列的数的个数
int a[n]; //n 个数用数组存放,其中a[0]没用
int m=3; //这里定m为3,你可以改成你要的数
int c=1; //C用来记a[i]的前面一个没出列的数值
a[0]=0;
do
for (i=1;i<=n;i++)
{if (a[i]<>0) //a[i]=0,说明该元素已经出列
{a[i]=c+1;
if(a[i]%m==0)
{a[i]=0; //出列的元素值用0来标志。
j++;
printf("%d\n",i);
}
else
c=a[i];
}
}
while(j<n) //j=n时,数列全部出列
}
Popo_CN
2005-01-05
打赏
举报
回复
/*一寺?有和尚一百,午?是一百个??,?人一个已立了?矩,雷打不?。某日??,一外来
云游和尚来??,寺主持既不想破寺内?矩,又不想破出家人允?化?的?矩,出招:全
部101个和尚排一大?圈,他?1然后向下一个方向?数,?到100者出列,取一??入?就餐,
?100的下一位(原第101)即从1?始第二??数。一百个百后肯定?剩一人,居然正是那
位云游和尚。?:初始?主持把他排在第几位?
*/
#include <stdio.h>
#define MAXCOUNT 100
#define COUNTNUM 100
struct node{
int num;
struct node *next;
};
int main(){
struct node *ph,*p1,*p2,*p3;
ph = p1 = p2 = p3 = (struct node *)malloc(sizeof(struct node));
int i;
int j = 1;
int k = 1;
/*create*/
for (i = 0;i < MAXCOUNT + 1;i++){
p1->num = i+1;
if(i != MAXCOUNT){
p2 = (struct node *)malloc(sizeof(struct node));
p2->next = NULL;
p1->next = p2;
p1 = p2;
}else{
p1->next = ph;
}
}
/*free*/
while(p3->next != p3){
if(j == COUNTNUM - 1){
struct node *pt;
j = 1;
pt = p3->next;
p3->next = p3->next->next;
p3 = p3->next;
printf("%d -->out No:%d\n",k,pt->num);
k++;
free(pt);
}else{
j++;
p3 = p3->next;
}
}
/*result*/
printf("The Result is No:%d\n",p3->num);
free(p3);
getchar();
return 0;
}
mxfeng
2005-01-04
打赏
举报
回复
。
dailiangren
2005-01-03
打赏
举报
回复
我解答的第一个,是用递推的想法解答的,但写起来好象是递归的形式。
我不大懂这些东西该怎么理解,期盼大家给我解疑。
# include<iostream.h>
void p(int n)
{
if(n==0) return;
for(int i=0;i<=n;i++)
cout<<" ";
for(int j=1;j<=5-n;j++)
cout<<j;
for(int k=6-n;k>=1;k--)
cout<<k;
cout<<endl;
p(n-1);
}
main()
{
p(5);
}
xiaosong8584
2004-12-21
打赏
举报
回复
up
aaalife
2004-12-20
打赏
举报
回复
晕死
这是面试题吗?考二级的都会唉~~~~~~
哪家公司,说来听听
:)
Oldman
2004-12-19
打赏
举报
回复
此C语言课本上去找吧
rickone
2004-12-19
打赏
举报
回复
第一个容易啊,用分治的思想,大问题分成若干个相似的小问题:
#include <stdio.h>
void mygraph(int n)
{
if(n==1)printf(" 1\n");
else
{
mygraph(n-1);
for(int i=1;i<=5-n;++i)printf(" ");
for(i=1;i<=n;++i)printf("%d",i);
for(i=n-1;i>0;--i)printf("%d",i);
printf("\n");
}//else
}//mygraph
void main()
{
mygraph(5);
}
aaasng
2004-12-19
打赏
举报
回复
第一个
#include <stdio.h>
int n = 0;
void foo(int j, int k)
{
int i;
if (k <= n)
{
for (i=0; i<j; i++)
printf(" ");
for (i=1; i<=k; i++)
printf("%d ", i);
for (i=k-1; i>=1; i--)
printf("%d ", i);
printf("\n");
foo(j-2, k+1);
}
}
void main()
{
scanf("%d", &n);
foo((n-1)*2, 1);
}
尹立
2004-12-18
打赏
举报
回复
第2个题目是以前学数据结构时做的第一个题目 用c语言写的 你看看吧~~
我刚刚写了注释~~要是看不懂 再告诉我
#include<stdio.h>
#include<malloc.h>
#include<conio.h>
typedef struct Note{
int i;
int j;
struct Node *next;
}NODE;
void main()
{
int i,j,n,k,m,t;
NODE *head;
NODE *p,*q,*s;
scanf("%d",&n); //输入人的个数;
head=(NODE*)malloc(sizeof(NODE));//申请一个头接点;
if(head==NULL)
{ printf("The memory is not allocated!");
return ;
}
q=head;
for(i=1;i<=n;i++) //开始输入密码;
{
p=(NODE*)malloc(sizeof(NODE));
if(p==NULL) return;
scanf("%d",&j);
p->i=i; //把编号送给人
p->j=j; //把密码送给人
q->next=p; //建立链表
q=q->next;
}
head=head->next; //清除空的头指针;
q->next=head;
p=head;
m=p->j;
for(k=1;k<n;k++) //开始循环;
{
t=1;
while(t<m) //找到所需要的位置,并把这个接点删除;然后继续往下找;
{
t++;
p=p->next;
}
s=p->next;
p->next=s->next;
m=s->j;
printf("%4d\n",s->i);
free(s);
}
printf("The lastest monkey is %d\n",p->i); //这是留下的最后的一个接点;
}
jp1984
2004-12-18
打赏
举报
回复
第一个用递归还真不是很容易想。
第二个就不要说了,Josephus 。。构造法 或者 递归。。。
qrlvls
2004-12-17
打赏
举报
回复
作业吧?
lyjpenny
2004-12-17
打赏
举报
回复
既然是作业就不要拿上来问了,随便找个高手搞定算啦.
Java
面试题
全集(中)
2015年重新整理发布的Java
面试题
全集,这部分主要是与Java Web和Web Service相关的
面试题
。
软件测试
面试题
(全)
http协议又叫做超文本传输协议,在做网络请求的时候,我们基本上是使用http协议。 http协议包括请求和响应。 请求中包括:请求地址,请求方式,请求方式包括get请求和post请求,get和post的区别是get请求是在地址栏后边跟随请求参数,但是请求参数大小是有限制,不同浏览器是不同的。一般是4KB。post请求主要用于向服务器提交请求参数。post请求的参数是放到请求实体内容中的,相对get请求较为安全一些。另外,请求中会有各种请求头信息,比如支持的数据类型,请求的来源位置,以及Cookie头等相关
java初级开发工程师
面试题
(2019.8)
毕业之前回家处理一些事情,结果没有赶上毕业典礼,很是遗憾。还因此耽误了一个月的时间,导致八月份才能出来找工作,每次被面试官问道这一个月干啥去了都得解释一遍。。。 二十多天的时间,面试了有十几家公司。感觉当下的工作很难找啊,也是自己水平不够。刚开始面试完全没有什么准备,也不知道该准备些什么,就从网上找的
面试题
,同学给的
面试题
中看题。后来面试了一些公司后,才整理出了一套经常问到的题目,感觉也和网上差...
【JavaScript
面试题
】
面试题
整理一
随手整理的JavaScript
面试题
,有问题望指出
请教
,感谢!
推荐算法岗
面试题
收集
收集
一下
推荐算法岗的
面试题
和网上同仁面试的情况,欢迎大家评论区补充,一起学习!! 后面会一直更新,丰富内容,祝愿大家面试顺利!!!
数据结构与算法
33,028
社区成员
35,337
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章