IT科技企业逻辑思维面试题

时间:2023-03-10 03:56:21
IT科技企业逻辑思维面试题

逻辑思维面试题

一、假设有一个池塘,里面有无穷多的水。现有2个空水壶,容积分别为5升和6升。问题是如何只用这2个水壶从池塘里取得3升的水。【请描述操作过程】

  答:(1)先用容积为6升的水壶装满水;

(2)将这些水倒入容积为5升的水壶中,此时容积为6升的水壶中剩下1升水;

(3)将容积为5升的水壶中的水全倒掉,将那一升水倒入容积为5升的水壶中;

(4)再次重复步骤(1)~(3)两次,即可,最后容积为6升的水壶中将会有3升的水。

二、周雯的妈妈是豫林水泥厂的化验员。一天,周雯来到化验室做作业。做完后想出去玩。“等等,妈妈还要考你一个题目,”她接着说,“你看这6只做化验用的玻璃杯,前面3只盛满了水,后面3只是空的。你能只移动1只玻璃杯,就使盛满水的杯子和空杯子间隔起来吗?”爱动脑筋的周雯,是学校里有名的“小机灵”,她只想了一会儿就做到了。【只能移动以一个玻璃杯,请描述你该怎么做】

答:(1)以从左向右数的方向给每一个玻璃杯编号,分别为1~6号;

(2)将第二只玻璃杯拿起,将里面的水倒入第五只玻璃杯中;

(3)倒完后将第二只玻璃杯再放回原位即可。

三、一个人花8块钱买了一只鸡,9块钱卖掉了,然后他觉得不划算,花10块钱又买回来了,11块卖给另外一个人。问他赚了多少?

  答:(答案一:2元)

1. 将花的钱和买的钱分别加起来;

2.用买的钱的总额减去花的钱的总额,即可得到最后赚的钱——2元。

(答案二:1元)

1.第一次交易:8元买到,9元卖掉,赚了一元;

2.第二次交易:10元买到,相比于前面9元卖掉,此时又亏了1元,即此时不亏不赚;

3.最后11元卖掉,相比于10元买到,盈利1元,故最后赚了1元。

四、有口井7米深,有个蜗牛从井底往上爬,白天爬3米,晚上往下坠2米,问蜗牛几天能从井里爬出来?

答: 5天

(1)第一天:上升了1米;

(2)第二天:上升了2米;

(3)第三天:上升了3米;

(4)第四天:上升了4米;

(5)第五天:在上升了4米的基础上,白天向上爬3米,此时总共上升了7米,井深也为7米,那么此时蜗牛已经可以爬出井口了。

五、今有2匹马、3头牛和4只羊,它们各自的总价都不满10000文钱(古时的货币单位)。如果2匹马加上1头牛,或者3头牛加上1只羊,或者4只羊加上1匹马,那么它们各自的总价都正好是10000文钱了。问:马、牛、羊的单价各是多少文钱?【写出解题过程,以及结果】

答: 马、牛、羊的单价各是3600、2800、1600文钱

设马、牛、羊的价格分别为xyz,单位:文

列方程:

2x+y=10000

3y+z=10000

4z+x=10000 

然后解方程即可求出:

x=3600,y=2800,z=1600

六、陈奕迅有首歌叫十年,吕珊有首歌叫365夜,那现在问,十年可能有多少天?【写出可能的结果】

答:因为这10年中有闰年或平年,故结果为:3651、3652、3653天

七、括号中的数字应该选择多少:0,4,18,(A),100

                 A.48;B.58;C.50;D.38

答:选A

规律:

0=0*12,4=1*22,18=2*32,46=3*43,100=4*55

八、有这样一个数列 1, 1, 2, 3, 5, 8, 13, 21, 34,………求出第30位的值;最好由递推公式【有编程基础的同学,可以用你擅长的语言进行编写】

答:C#代码如下

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleTest
{
class Program
{
static void Main(string[] args)
{
OutPut4();
}
//方法1,使用for循环
public static void OutPut2()
{
int num = ;
int prev = ;
for (int i = ; i < ; i++)
{
Console.WriteLine(num.ToString());//输出到页面上
int temp = num;
num += prev;
prev = temp;
}
Console.Read();
}
//方法2,使用while循环
public static void OutPut1()
{
int sum = ; //输出值
int num1 = ;
int num0 = ;
int i = ;//计数器
while (i < )
{
if (i == )
{
sum = num0 = ;
}
else if (i == )
{
sum = num1 = ;
}
else
{
sum = num1 + num0;
num0 = num1;
num1 = sum;
}
Console.WriteLine(sum);
i++;
}
Console.Read();
}
//方法3,使用递归循环
public static void OutPut4()
{
for (int i = ; i < ; i++)
{
Console.WriteLine(Calc(i));
}
Console.Read();
}
public static int Calc(int num)
{
if (num == || num == )
{
return ;
}
return Calc(num - ) + Calc(num - );
}
}
}
//方法4,使用数组
public static void OutPut3()
{
var numArray = new int[];
int i = ;
while (i < )
{
if (i == )
{
numArray[i] = ;
}
else if (i == )
{
numArray[i] = ;
}
else
{
numArray[i] = numArray[i - ] + numArray[i - ];
}
Console.WriteLine(numArray[i]);
i++;
}
Console.Read();
}

九、求以下表达式的值:1-2+3-4+5-6+7-8……+m;说明,写出递推公式;【有编程基础的同学,可以用你擅长的语言进行编写】。

     答:C#代码如下

 int sum = ;
for (int i = ; i <= ; i++)
{
if (i%!=)
{
sum += i;
}
else
{
sum -= i;
} }
Console.WriteLine(sum);
Console.ReadKey();

十、烧一根不均匀的绳子要用一个小时,如何用它来判断半个小时?烧一根不均匀的绳子,从头烧到尾总共需要1个小时。现在有若干条材质相同的绳子,问如何用烧绳子的方法来计时一个小时十五分钟呢?

【微软的笔试题,请注意是两个问题,注意绳子粗细不均匀】

 答:(1)取三根绳子;

(2)先将第一根绳子的两端都点燃;

(3)点燃第一根绳子的同时,将第二根绳子的一端也点燃;

(4)等到第一根绳烧完的同时 (此时已过30分钟),将第二根绳子的另一端也点燃;

(5)等到第二根绳子烧完的同时(此时又过了15分钟),将第三根绳子的两端同时点燃;

(6)等到第三根绳子烧完的时(此时又过了30分钟),累加起来一共用了1个小时15分钟。

 注:未完,待续!