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#代码如下

 1 using System;  2 using System.Collections.Generic;  3 using System.Linq;  4 using System.Text;  5 namespace ConsoleTest  6  {  7 class Program  8  {  9 static void Main(string[] args) 10 { 11  OutPut4(); 12 } 13 //方法1,使用for循环 14 public static void OutPut2() 15 { 16 int num = 1; 17 int prev = 0; 18 for (int i = 0; i < 30; i++) 19  { 20 Console.WriteLine(num.ToString());//输出到页面上 21 int temp = num; 22 num += prev; 23 prev = temp; 24  } 25  Console.Read(); 26 } 27 //方法2,使用while循环 28 public static void OutPut1() 29 { 30 int sum = 0; //输出值 31 int num1 = 0; 32 int num0 = 0; 33 int i = 0;//计数器 34 while (i < 30) 35  { 36 if (i == 0) 37  { 38 sum = num0 = 1; 39  } 40 else if (i == 1) 41  { 42 sum = num1 = 1; 43  } 44 else 45  { 46 sum = num1 + num0; 47 num0 = num1; 48 num1 = sum; 49  } 50  Console.WriteLine(sum); 51 i++; 52  } 53  Console.Read(); 54 } 55 //方法3,使用递归循环 56 public static void OutPut4() 57 { 58 for (int i = 0; i < 30; i++) 59  { 60  Console.WriteLine(Calc(i)); 61  } 62  Console.Read(); 63 } 64 public static int Calc(int num) 65 { 66 if (num == 0 || num == 1) 67  { 68 return 1; 69  } 70 return Calc(num - 1) + Calc(num - 2); 71  } 72  } 73  } 74 //方法4,使用数组 75 public static void OutPut3() 76 { 77 var numArray = new int[30]; 78 int i = 0; 79 while (i < 10) 80  { 81 if (i == 0) 82  { 83 numArray[i] = 1; 84  } 85 else if (i == 1) 86  { 87 numArray[i] = 1; 88  } 89 else 90  { 91 numArray[i] = numArray[i - 1] + numArray[i - 2]; 92  } 93  Console.WriteLine(numArray[i]); 94 i++; 95  } 96  Console.Read(); 97 }
View Code

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

     答:C#代码如下

 1 int sum = 0;  2 for (int i = 1; i <= 5; i++)  3  {  4 if (i%2!=0)  5  {  6 sum += i;  7  }  8 else  9  { 10 sum -= i; 11  } 12 13  } 14  Console.WriteLine(sum); 15 Console.ReadKey();

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

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

 答:(1)取三根绳子;

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

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

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

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

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

 

 注:未完,待续!


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM