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