程序员HR面试问题|程序员递归面试问题及解析

面试试题 2021-04-27 网络整理 可可

【jianli.jxxyjl.com--面试试题】

面试例题 2:八皇后问题是一个古老而著名的问题,是回溯算法的典型例题。该问题是 19 世纪著名的数学家高斯 1850 年提出:在 8×8 格的国际象棋盘上摆放 8 个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。[英国某著名计算机图形图像公司面试题]
解析:递归实现 n 皇后问题。
算法分析:
数组 a、b、c 分别用来标记冲突,a 数组代表列冲突,从 a[0]~a[7]代表第 0 列到第 7 列。如果某列上已经有皇后,则为 1,否则为 0。
数组 b 代表主对角线冲突,为 b[i-j+7],即从 b[0]~b[14]。如果某条主对角线上已经有皇后,则为 1,否则为 0。
数组 c 代表从对角线冲突,为 c[i+j],即从 c[0]~c[14]。如果某条从对角线上已经有皇后,则为 1,否则为 0。
代码如下:
#include <stdio.h>
static char queen[8][8];
static int a[8];
static int b[15];
static int c[15];
static int iqueennum=0; //记录总的棋盘状态数
void qu(int i);
//参数i 代表行
int main()
{
int iline,icolumn;
//棋盘初始化,空格为*,放置皇后的地方为@
for(iline=0;iline<8;iline++)
{
a[iline]=0; //列标记初始化,表示无列冲突
for(icolumn=0;icolumn<8;icolumn++)
queen[iline][icolumn]='*';
}
//主、从对角线标记初始化,表示没有冲突
for(iline=0;iline<15;iline++)
b[iline]=c[iline]=0;
qu(0);
return 0;
}
void qu(int i)
{
int icolumn;
for(icolumn=0;icolumn<8;icolumn++)
{
if(a[icolumn]==0&&b[i-icolumn+7]==0&&c[i+icolumn]==0)
//如果无冲突
{
queen[i][icolumn]='@';
//放皇后
a[icolumn]=1;
//标记,下一次该列上不能放皇后
b[i-icolumn+7]=1;
//标记,下一次该主对角线上不能放皇后
c[i+icolumn]=1;
//标记,下一次该从对角线上不能放皇后
if(i<7) qu(i+1);
//如果行还没有遍历完,进入下一行
else //否则输出
{
//输出棋盘状态
int iline,icolumn;
printf("第%d 种状态为:\n",++iqueennum);
for(iline=0;iline<8;iline++)
{
for(icolumn=0;icolumn<8;icolumn++)
printf("%c ",queen[iline][icolumn]);
printf("\n");
}
printf("\n\n");
}
//如果前次的皇后放置导致后面的放置无论如何都不能满足要求,则回溯,重置
queen[i][icolumn]='*';
a[icolumn]=0;
b[i-icolumn+7]=0;
c[i+icolumn]=0;
}
}
}

本文来源:https://jianli.jxxyjl.com/mianshishiti/4849.html

  • [美国F1签证面试问题]美国f1签证面试问题

    美国f1签证面试技巧:回答问题的原则  (1)回答问题时用英语,语速可放慢。 如果太快,签证官认为您的英语很好,也因此会加快语速,这样您可能会听不懂。当然,官员有时故意提高说话的速度,来考核您的英语水平。您可以把语速压下来,讲得慢并不是说明英语差,语法要正确。  (2) 回答问题时要简明扼要,态...

    发布于:2021-05-20

    详细阅读
  • 腾讯面试题目答案_腾讯面试题

    请将答卷、作品及简历压缩后发送到:campus@tencent com 邮箱,投递作品请在主题标明:职位+地区+学校+姓名,如:用户研究+北京+北京大学+张三 一、 耐心填一填!(每空4分,共24分) 1 为div设置类a与b,应编写html代码_...

    发布于:2021-05-20

    详细阅读
  • 【应聘面试常见问题及回答技巧】面试问题及回答

    面试问题及回答参考  1、我们为什么要聘用你  (测试你的沉静与自信。)给一个简短、有礼貌的回答:“我能做好我要做的事情、“我相信自己,我想得到这份工作。  2、为什么你想到这里来工作  (这应该是你喜爱的题目。)因为你在此前进行了大量的准备,你了解这家公司。组织几个原因...

    发布于:2021-05-19

    详细阅读
  • 面试中可能被问到的问题英文_面试中可能被问到的问题

    面试中可能被问到的问题  面试随单位和岗位的不同而有很大差别,没有固定的形式、问题和答案,这里所列的只是常见的一些问题和回答的要点,仅供毕业生参考。  (一)关于个人方面的问题  1、请介绍一下你自己  在面试前用人单位大多都看过了毕业生的自荐材料,一些基本情况都有所了解,所以在自我介绍时要简...

    发布于:2021-05-19

    详细阅读
  • 护士应聘面试常见问题及回答|护士面试常见问题及答案

    护士面试常见问题及答案(一)  1、 我们为什么要雇请你呢?  有的面试只有这么一个问题。话虽简单,可是难度颇高。主要是测试你的沉静与自信。给一个简短、有礼貌的回答:我能做好我要做得事情,我相信自己,我想得到这份工作。根据自己的实际情况,好好想想把,看怎么说才具有最高说服力。  2、 你认为...

    发布于:2021-05-19

    详细阅读
  • 江南style小苹果_江南Style成面试题

    江南style成面试题;  18日上午,常州市第一中学的报告厅里坐满了老师和同学,现场的气氛紧张而热烈,这里正在进行XX届清华大学“新百年领军计划”推荐生选拔pk。5名候选人经过个人陈述、现场提问、一分钟总结等3个环节的比拼,最终高三(1)班的***胜出,成为清...

    发布于:2021-05-19

    详细阅读
  • 面试常用问题解析_届面试问题解析

    1、你认为你适合干什么?  一般一个人的选择是从想干什么和能干什么这两个方面着手考虑的,这两点都得到满足才是最佳选择。但现实中不可能都得到最大化的满足。  许多人只从表面上了解工作性质,甚至对自身的了解也流于表面,认为善于交流的人就适合做营销,沉稳的人只适合搞研究。其实,善于交流的人如果不能...

    发布于:2021-05-19

    详细阅读
  • 外贸公司面试题目_外贸公司面试题

    公务员面试总原则  面试时,考生应该坚持自信和沉着。答题时既要实事求是,也要随机应变。具体表现为,考生应该手脚安稳,不乱抖动,两眼平视主考官,注意和考官们的目光交流。面试并不是要像机器人一样表现“完美”,考生可偶尔低头看纸、思考,也可用手势。只要两眼不乱飘,自然地微笑,稳重、...

    发布于:2021-05-18

    详细阅读
  • 产品经理面试会问哪些问题_产品经理面试:哪些问题是你没有准备的?

    产品面试的同学提供一些帮助。  面试问题分为自我介绍、产品基本知识、实习经理和个人经历(共50题)。有些基本的问题,不管你去面试什么公司、什么行业都会问到。建议大家在准备面试之前,准备好你认为做可能问道的50个问题,然后把答案写好,打印出来。然后经常去看看,去修改。  往往你第二天,看昨天写的...

    发布于:2021-05-18

    详细阅读
  • 【车让人面试题】面试题:让你逃税100万,你该怎么做?

    如果您作为财务经理,如果总经理要求您1年之内逃税100万元,您会怎么做?  分析:面对这类问题,如果你抓耳搔腮地思考逃税计谋,或者思如泉涌地立即列举出一大堆方案,你都会中他们的圈套。实际上,主考官这个时候真正考核的不是你的业务能力,而是你的商业判断能力及商业道德方面的素养,因为在几乎所有的国际化...

    发布于:2021-05-18

    详细阅读

Copyright @ 2011-2019 求职简历网 All Rights Reserved. 版权所有

免责声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。

 站长统计