本文主要是介绍联想面试智力题,听说前面三道题必考(有部份解答),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
联想面试智力题,所说前面三道题必考,这个没有被证实过。不过,当用来完完了没有什么不可的。题目如下:
1、一条绳子,从一头点燃,全部烧完要耗时1个小时,问如何用这条绳子测出半个小时。
我的答案:假设绳子是钧匀的,把绳子剪成两断,其中一断烧完,那就是半小时。
2、排成3行3列的矩阵形式的九个点。如何用一笔划出4条直线,经过这所有九个点。
用1~9九个数字代表点 从左至右 由上往下排列
第一条经过左边147 并且延伸一个点的距离
第二条经过86也延伸一个点
第三条经过321
第四条经过159
这是百度知道里的答案, 没有仔细理解题意,题中并没有说明我们不可以做其它的,只是说了四条线。我就是考我们在遇到问题的时候,是否总是钻在一个洞里,还是出洞来寻求合适的帮助。做人真的很难呀。
3、有100盏灯,从1~100编上号,开始时所有的灯都是关着的,第一次,把所有编号是1的倍数的灯的开关状态改变一次;第二次,把所有编号是2的倍数的灯的开关状态改变一次;第三次,把所有编号是3的倍数的灯的开关状态改变一次;以此类推,直到把所有编号是100得倍数的灯的开关状态改变一次。问,此时所有开着的灯的编号。
我编程解决了:
public class ConditionChange100Times {
int[][] numArray=new int[100][2];
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
ConditionChange100Times c=new ConditionChange100Times();
c.initNumArray();//初使化
c.change100Times();//改变一百次,并且把每一次的改变结果都打印出来
}
/**
* 初使化
*/
void initNumArray()
{
for(int i=0;i<100;i++)
{
numArray[i][1]=0;
}
}
/**
* 改变100次
*/
void change100Times()
{
printResult(0);//初使化打印
for(int i=1;i<=100;i++)
{
for(int j=i;j<=100;j++)
{
if(j%i==0)
{
if(numArray[j-1][1]==0)
numArray[j-1][1]=1;
else
numArray[j-1][1]=0;
}
}
printResult(i);//打印每一次的更改结果
}
}
/**
* 打印
*/
void printResult(int current)
{
System.out.print("第"+current+"次:");
for(int i=0;i<100;i++)
{
System.out.print(numArray[i][1]+" ");
}
System.out.println("");
}
}
4、 P先生、Q先生都具有足够的推理能力。这天,他们正在接受推理面试。
> 他们知道桌子的抽屉里有如下16张扑克牌:
> 红桃A、Q、4
> 黑桃J、8、4、2、7、3
> 草花K、Q、5、4、6
> 方块A、5
> 约翰教授从这16张牌中挑出一张牌来,并把这张牌的点数告诉P先生,把这张牌的花色告诉Q先生。这时,约翰教授问P先生和Q先生:你们能从已知的点数或花色中推知这张牌是什么牌吗?
> P先生:"我不知道这张牌。" Q先生:"我知道你不知道这张牌。" P先生:"现在我知道这张牌了。" Q先生:"我也知道了。" 请问:这张牌是什么牌?
这篇关于联想面试智力题,听说前面三道题必考(有部份解答)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!