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分钟。

 

 注:未完,待续!

转载于:https://www.cnblogs.com/pang951189/p/7439670.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值