麗山經典50題

1、假設長途電話費率的計算方式如下:
  (1) 任何從600PM1800時)以後開始的通話將有50%的折扣。
  (2) 任何從800AM0800時)以後開始的通話必須要付全額費用。
  (3) 任何電話都必須要課4%的營業稅。
  (4) 任何通話的一般費用是每五分鐘1.7元,未滿五分鐘以五分鐘計算。
  (5) 任何超過60分鐘以上的通話將有15%的折扣(已在扣除所有折扣後未
     加入稅金時的費用為準)。
  寫一程式,以讀入每次通話的起始時間(24時制)及通話時間來處理通話的
  實際費用(含稅金及折扣)。

2、寫一程式計算一組數字的乘積。你的程式必須再讀入0時停止,若讀入非0
    資料時,則予以計算乘積。

3、一個數的平方根可以使用下列公式,反覆計算近似得出
  NG0.5LG+N/LG
  其中NG代表下一個猜測值,LG代表最後猜測值。寫一程式實做出過程的程
  式。(容忍值設定為0.005
  提示:初次猜測值將是LG的開始值。程式將使用上述公式計算NG的值。若是
          NGLG的差值,小於可容忍值,則程式結束,NG即為平方根。否則,
          NG將變成LG,並重複處理前述的計算。

4、一整數,若其位數和可被9整除則必可被9整除。請用此方法判斷一數是否可
    9整除。

5、銀行存款計算方式如下
    N天後的存款=開始存入的錢 *1+RATE/365^ N
    RATE:代表年利率
  寫一程式包含下列兩個功能
  (1)輸入開始的存款經過N天後,輸出存款為何?
  (2)輸入N天後的存款,求開始時要存入多少錢?

6、請問若有G公克之同位素鍶90Sr90)(半衰期為29年),
  (1) 請列印出經過N年後,剩餘的重量為何?(剩餘量=初始重量G * C^(Y/H)
    ,H表放射性同位素之半衰期。Ce^-0.693e=2.71828
  (2) 輸入剩餘重量與初始重量G,求出所要經過的時間?

7、輸入一連串數字(<20個數字)直到0,對每一個數字判斷下列
  (1)是否為71113的倍數 (2)位數和為奇數或偶數
  (3)平方根為何?       4)是否為質數?
  (5)列出所有質因數

8、輸入一變數N , 再輸入個數字成為一個含有個數的
          集合A , 然後輸出所有這個集合的子集合。

          Ex: N=3, A { 1, 2, 3 }
          ANS: { 1 }
               { 2 }
               { 3 }
               { 1, 2 }
               { 1, 3 }
               { 2, 3 }
               { 1, 2, 3 }
               { }  <--- 空集合
              
9、標會問題....
  設今有一互助會會員50,會期50..每月會錢10000元自第二個月起標金為
 2500元,以後每個月遞減50.......若在第50月標下此會....和每月存
 10000元進銀行到50月後...何者錢會較多...並且算出差額....
  銀行以複利算,年利率6%,以月計(複利總額的小數部分,無條件捨去)...
  (標會原則...第一個月會頭可領除自己外所有人的會錢...以本例...會首在第
  一個月可得490000...第二個月一人以2500標下....他拿到的錢仍然是490000
  ....但他以後每個月需繳交12500的會錢..而且不得再標下此會....第三個月另一
   人以2450元標下...他卻可得492500....同理...第四個月的人拿到494950....)

10、多項式A(x)B(x)(最高維數25)的相乘、相除、餘數

11、阿婆賣蛋,七個一數餘二,九個一數餘二,三個一數餘二,求<10000之
      內的所有可能結果。

12、完全數
      一個數等於它所有的因數和,這種數我們叫它完全數﹝不包括它本身﹞
            6=1+2+3
             28=1+2+4+7+14
      請求出第三、第四以及第五個完全數

13、寫一程式包含下列三個功能,不能用內建的函數
  (1).輸入一個十進位數,將數字轉成二進位,八進位,十六進位。
  (2).輸入一個二進位數,將數字轉成十進位,八進位,十六進位。
  (3).輸入一個十六進位數,將數字轉成二進位,八進位,十進位。

14、讀入任意長度字串(最多50字元),對此字串坐下列處理動作:
  (1)列印出字串長度(使用者輸入的部分)。
  (2)以一個4*號字串取代每一個4字母單字,
     以一個3+號字串取代每一個3字母單字,
     以一個5?號字串取代每一個5字母單字,
     並列印新字串。

15、身分證認證
   確認一組身分證號碼是否合法??
   (1)英文代號以下表轉換成數字
   A=10 台北市   J=18 新竹縣   S=26 高雄縣
   B=11 台中市   K=19 苗栗縣   T=27 屏東縣
   C=12 基隆市   L=20 台中縣   U=28 花蓮縣
   D=13 台南市   M=21 南投縣   V=29 台東縣
   E=14 高雄市   N=22 彰化縣  * W=32 金門縣
   F=15 台北縣  * O=35 新竹市   X=30 澎湖縣
   G=16 宜蘭縣   P=23 雲林縣   Y=31 陽明山
   H=17 桃園縣   Q=24 嘉義縣  * Z=33 連江縣
  * I=34 嘉義市   R=25 台南縣
   (2)英文轉成的數字個位數乘9再加上十位數
   (3)各數字從右到左依次乘1、2、3、4....8
   (4)求出(2),(3)之和
   (5)求出(4)10後之餘數,10減該餘數,結果就是檢查碼,若餘數為0
     檢查碼就是0
   例如身分證號碼是 A123456789

16、找出所有小於5,000之正整數,其值等於其各個數字之階乘和。
   例:4!0!5!8!5!
        = 24112040320120
        = 40585

17、試設計一程式可以比較一組資料(小於 10000 之正整數)中,
       任意一位(或數位數)之大小。
       輸入資料:任意一組小於 10000 之正整數,及所欲比較之位數 N
                 ( 1 < N < 4 )
       輸出資料:照條件敘述列印出來
                 這個條件要包含:
                1)由大而小列印出來
                2)由小而大列印出來
                3)第 N 位數之最大者
                4)第 N 位數之最小者
                5)取任意連續二項而比較其大小
                6)取任意連續三項而比較其大小
       例:輸入資料  0237 0126 3175 1167
           輸出條件                             輸出資料
          1)由小而大列印出來      0126 0237 1167 3175
          2)第三位數之最小者      0126
          3)第一位數之最大者      3175
          4)第二,三位數之最大者  0237(即比較 23 12 17 16 之大小)


18、設計一程式可將最長含10個字元的字串讀入每一個字元均代表某一數值
   的羅馬數表示法。將讀入之羅馬數及其相對應之阿拉伯數一起列印出來。
     羅馬數和字元之對應表如下:                        
                         1000
                          500
                          100
                           50
                           10
                            5
                            1
      而其他的數字,則是前列的字母以位中央的主數以左減、右加的方式複合
      而成(例:IV=[5-1]XI=11[10+1]XLI=41[50-10+1]
      XL IV=44[50-10+(4)];網心字者均為"主數"),就如上例所示,主數、左數
      都是以一個字母來表示,但右數則是可以又再以同法再複合而成
      (例:44=XL IV;而947=1000-100+(47)=1000-100+[50-10+(7)]
      =1000-100+{[50-10+(5+2)]=1000-100+{[50-10+(5+1+1)]
      即為CMXLVII;至於左數,則必須為I,X,C(1,10,100)等數字,
      5,50,500為左數的數字均視為不合法,例:50=L,而LC(100-50)則不合法
      ,而左數的表示亦須以最接近欲表示數字的方式呈現,
      (49=IL[50-1]而不是XLIX[50-10+10-1])
    由上列的規則,我們便可以了解到,主數能表達的數字最大,左數次之,
      右數再次之,但右數的主數字絕對不能大於左數,
      (例:45=XLV,以ICVII表示106則不合法);在沒有左數的情形下,
      主數和右數的主數數字可以相同(例:2=II[1+1],1900=MCM[1000+(1000-100)])
      至於主數的判定則由上規則便可以發現到1~3I4~8V9~39X40~89L
      90~399C,而400~899D,而900~3999M
             
     你的輸入有下列幾組:
    1.VII
    2.LXXXVII
    3.CCXIX
    4.MCCCLIV
    5.MMDCLXXIII
    6.MCDLXXVI

19、有二正整數AB,若所有能整除A的正數之和等於B(包括1,但不包括A
   本身);反之亦然,則此二正整數稱為"friendly"
    例如:220284,其中能整除220之數有:
       1+2+4+5+10+11+20+22+44+55+110=284
    能整除284的有:
       1+2+4+71+142=220
    試設計一程式,找出所有成"friendly"關係的正整數組,且此正整數組
   中的兩個數均小 於500

20、參考第18題,輸入阿拉伯數字,轉成羅馬數字。

21、輸入由許多字(WORDS)組成之字串,總長度不超過30 characters,字與
   字間由一個或一個以上之 SPACES或是以句點、逗號、驚嘆號隔開。設計
   一程式將此字串平均安排在長度為 40 characters  Array 中,使得
   第一字向左對齊,最後一字向右對齊 (Fully Justified);每個字之間
   以大約相等之SPACES隔開。印出輸入及重組後之字串。
   測試資料:
      LINK THIS PC TO THE HOST                  

22、輸入平面上任意五個點,試設計一程式能畫出一個最小的圓包含此五個
      點這個程式的輸入為"任意五個點",其輸出為此五個點及所畫出的最
      小圓
      測試資料:(2,4),(4,6),(3,2),(7,3),(6,0)

23、若有一分、五分、一角、二角、二角五分、五角之銅板,各種銅板之個
   數設為無限多,求最少之銅板個數,其總值為吾人所期望之金額。
   測試資料:
          (A)一元       (B)七角五分     (C)九角
          (D)八角二分   (E)一元六角六分

24、設計一程式,可以和人玩#字遊戲,此遊戲可由參加遊戲者下或是電腦
   先下,亦可選擇持""""字,當有一方到連成一線時電腦就必須立刻
   判誰是優勝者,下圖為#字遊戲的一範例。

                                │ X              O│    │X
   ──┼──┼──         ──┼──┼──           ──┼──┼─
       │ O │       ─→      │ O │                 │ O │
   ──┼──┼──         ──┼──┼──           ──┼──┼─
                                                       │X
                                                              
                              O│    │ X              O│    │X
                            ──┼──┼──           ──┼──┼─
                                │ O │ X              │ O │
                            ──┼──┼──           ──┼──┼─
                              O│    │ X              O│    │X

                           ""

25、將真分數分解為分子為1之分數和。(大學甲組)
        17   1   1    1      1
    例:─ = +  +  +  ──
        21   2   4    17    1428
  測試資料:
        57          12345           37
    (A)       (B) ───      (C) 
        58          12346           67

        35          123
    (D)──         ──
        48          456
26、寫一程式能計算二元一次聯立方程式之根,即:輸入資料為A1,A2,A3,B1
   ,B2,B3六數,輸出資料為XY,使
        A1*X+A2*Y=A3
        B1*X+B2*Y=B3
    如無法算出XY則輸出"NO SOLUTION",如有多組解;則請輸出使|X|+|Y|
  最小值之任一組解。    (|X|X之絕對值)

27、請設計一程式,輸入三個小於100000的十進位整數,其中前二個整數之和
   為第三個整數,但是每個十進位整數輸入時每一位都是以英文字母{A,B,
   ......., Z}之一代表,而且不相同字母表示不相同數字。
    例:輸入SEND MORE MONEY   
              SEND    9567
                          +MORE     +1085      為其一組解
                        ────   ────
                          MONEY     10652

     輸入EAT MORE FOOD
                 EAT     943
                          +MORE     +7169      為其一組解
                        ────   ────
                           FOOD      8112
    求出一組解(即是各字母所化表之值,可能不祇一組解,不必考慮無解之情形)

28、設AB分別代表兩正整數,一般情形,A/B在許多情形下為循環小數
   1/7 =0.142857,但如以電腦直接將兩數相除,無法獲得此結果,請設計程
   式,其輸入為AB兩正整數,輸出為:如果不是循環小數,則直接印出其商
   數。如為循小數,則精確的算出其商值,並標出其循環節,可假設其不超過
   6位,並可設A<B

29、魔術數字遊戲
   填數字方格的遊戲有很多種變化,如下圖所示的 4×方格中,我們要選擇
   從數字 1 16 來填滿這十六個格子( Aij, 其中 i = 14, j = 14 )
   為了讓遊戲更有挑戰性,我們要求下列六項中的每一項所指定的四個格子,
   其數字累加的和必須為 34
   四個角落上的數字,即 A11 + A14 + A41 + A44 = 34
   每個角落上的 2×方格中的數字﹐例如左上角︰ A11 + A12 + A21 + A22 = 34
   最中間的 2×方格中的數字,即   A22 +A23 +A32 +A33 =34
   每條水平線上四個格子中的數字,即 Ai1 +Ai2 +Ai3 +Ai4 =34,其中 i = 14
   每條垂直線上四個格子中的數字,即 A1j +A2j +A3j +A4j =34,其中 j = 14
   每條對角線上四個格子中的數字,例如左上角到右下角︰
    A11  + A22  + A33  + A44 = 34
    A11  A12  A13  A14
    A21  A22  A23  A24
    A31  A32  A33  A34
    A41  A42  A43  A44

   輸入檔說明:
   輸入檔案內會指定把數字 1 先固定在四個角落中的某一個角落內 (即指定把
    1 填在 A11A14A41,或 A44 的格子內)。輸入的資料只有一組,用 ij
   表示第 i 橫列和第j直行的格子放數字 1。剩下的十五個格子,請按照前述六
   項條件用數字 2  16 來填滿。

   輸出檔說明:
   把全部的正確解答用 4×方格的格式 (即分成四列,每列四個數字寫到輸
   出檔。答案和答案之間,要以一個空白行相間,並且依序排好。排序的方式,
   是先從第一列的數字開始比較,每一列數字,由最左邊的數字開始比,數字較
   小的解答必須先輸出到檔案中。

30、設A0B為兩正整數,設A0B除後得餘數為A1,然後10*A1B除得餘數為A2
   依此類推即Ai+110*Ai/B之餘數,設計一程式。當A0B為已知時能算出A0
   A1A2、……Ak直至第一個AkAi(ik)為止,並說明k之值

31、A[I][J]表示A為一個兩階陣列(TWO DIMENSIONAL ARRAY)它在數學上可以表示
   成一個IJ行的矩陣A
         A(1,1)  A(1,2)………A(1,J)      ←…第1
         A(2,1)  A(2,2)………  :         ←…第2
           :       :     :     :            :
     A=    :       :   A(i,j)  :            :
           :       :     :     :            :
         A(I,1)  A(I,2)………A(I,J)      ←…第I
           :       :           :
                             其中A(i,j)1iI1jJ
                           
           行                  其矩陣A之第i列,第j行元素

   現有另一矩陣BPQ行之矩陣,若A之行數J等於B之列數P,則可以定義出矩
   陣乘法A×B

      C=A×B

       C(1,1)C(1,2)C(1,Q)  A(1,1)A(1,2)A(1,J)  B(1,1)B(1,2)B(1,Q)
       C(2,1)C(2,2)C(2,Q)  A(2,1)A(2,2)A(2,J)  B(2,1)B(2,2)B(2,Q)
   即    :     :        :    :     :        :   ×  :     :       :
         :     :        :      :     :        :      :     :       :
         :     :        :      :     :        :      :     :       :
       C(I,1)C(I,2)C(I,Q)  A(I,1)A(I,2)A(I,J)  B(P,1)B(P,2)B(P,Q)

    CIQ行之矩陣,其第iq行之元素C(i,q)可以下法求得:
   C(i,q)=A(i,1)B(1,q)+A(i,2)B(2,q)+……+A(i,j)
   B(j,q)=ΣA(i,j)B(j,q)
          ( 1jJ )

   例如:
   C之第2列第3行元素C(2,3)=A(2,1)B(1,3)+A(2,2)B(2,3)+……+A(2,J)B(J,3)
   請寫一程式INPUT I,J,P,Q,A(1,1)A(1,2)A(I,J)A(I,J)B(1,1)
   B(1,2)B(P,Q)且若J=P則由螢光幕上印出C之所有元素C(1,1)C(1,2)C(I,Q)
   ,否則印出ERROR!

32、輸入一篇英文文章,計算文中任兩英文字母接連出現的頻率,亦即
   @A,A@,AA,AB,AC,﹒﹒﹒﹒,AZ,@B,B@,BA,
   BB,BC,﹒﹒﹒﹒,BZ,﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒﹒,ZZ等出現的字數。
   其中@A代表A為一英文單字的第一個字母;
     A@代表A為一英文單字的最後一個字母,餘類推。
   按其頻率之高低排序後,將頻率不為零的依序列印出來。
   []  輸入:
          THIS IS HIS BOOK
      列印出的結果為:
          IS:3     S@:3      HI:2      @B:1
          @H:1     @I:1      @T:1      BO:1
          k@:1     OK:1      OO:1      TH:1
   請以下列文章測試之:
   (請將下列文章存於檔案中,以讀檔案的方式來設計程式)
   SOFTWARE CONSISTS OF THE PROGRAMS A COMPUTER
   SYSTEM EXECUTES.
   THERE ARE TWO KINDS OF SORTWARE;SYSTEM
   SOFTWARE AND APPLICATIONS SOFTWARE.
   SYSTEM SOFTWARE CONSISTS OF PROGRAMS THAT HELP
   USERS WRITE AND EXECUTE OTHER PROGRAMS.
   APPLICATIONS SOFTWARE DOES THE JOBS THAT USERS
   BROUGHT THE COMPUTER TO HANDLE.
   APPLICATIONS SOFTWARE IS AS VARIED AS THE
   APPLICATIONS OF COMPUTERS THEMSELVES.

33、輸入一個字串(<100)列印出此字串中最長相同部分。

34、輸入兩個字串(<100)列印出兩個字串中最長相同部分。

35、輸入三角形三頂點的直角坐標,計算並印出該三角形的周長與面積。如果該
   三角形為等腰三角形、正三角形、直角三角形,並請加註記。請以下列數據
   測試之:
   (1)(2,4)       (-3,2)        (1,-4)
   (2)(-2,0)      (0,-2)        (2,2)
   (3)(1,2)       (-3,-1)       (0,-5)
   (4)(0,0)       (2,4)         (-1,-2)


36、試寫一程式,以輸入一字串,其長度 (含空白), 最長為81個字元,然後檢
    驗該語言串中之母音 (A,E,I,O,U,a,e,i,o,u),並將之刪除,且該些母音之
    位置由後續之字元向前位移予以佔用而不留下空白,例如:輸入 "Mary︿
    Lives︿IN︿300,︿Born︿St.,︿Chungli,︿Taiwan,︿R.︿O.︿C."其中"︿
    " 表示空一個位置。經刪除母音後成為 "Mry︿Lvs︿N︿300,︿Brn︿St.,︿
    Chngl,︿Twn,︿R.︿.︿C.";然後將輸入之字串與刪除母音後之字串同時輸出。

    測試資料:(請將下列文章存於檔案中,以讀檔案的方式來設計程式)
              " He Sells Sea Shells by the Seashore."
              " I don't know how to Complete the testing Program."
              " The men who spead ill of others will take no advantage
                of others in the last."

37、請設計一程式能將任一正整數N(1<=N<=10)分解為小於或等於
      N之.正整數之和,並按"反字典"之次序印出。所謂反字典次序意指與
      英文字典之排列次序相反,即先印大再印小,例如N=6,其列印之次序
      如下:
            6=6
            6=5+1
            6=4+2
            6=4+1+1
            6=3+3
            6=3+2+1
            6=3+1+1+1
            6=2+2+2
            6=2+2+1+1
            6=2+1+1+1+1
            6=1+1+1+1+1+1

      上述例題之排列從行而言是由大而小,從列而言也是由大而小,請列印測
      試資料:N=6,N=8之結果以便批改。

38、試設計一程式,能檢驗輸入的四點(X1 Y1)(X2 Y2)(X3 Y3)(X4 Y4)
      是否可構成一直立矩形。所謂直立矩形乃指矩形之兩雙對邊分別平行於X
      軸及Y軸。(請參看附圖),若此四點無法成為一直立矩形則電腦會""
      一聲並要求使用者重新輸入四點,若此四點可成一直立矩形則將此四點存
      於陣列中並在螢幕上繪出此直立矩形。當電腦連續收集兩個直立矩形時,
      你的程式將能分辨此二矩形是相交(Intersect),分離(Disjoint)包含
      (Contain)。請將結果顯示於螢幕,除此外,你要將輸入矩形之坐標及辨
      別之結果列印以便批改。

     Y     (5,8)
               ┌──────┐(10,8)
                           
                           
                           
     (2,4)                 
       ┌───┼─┐(6,4)   
       (5,3) └─┼────┘ (10,3)
       └─────┘ (6,3)
     (2,2)
     └───────────────> X
          圖例

39、四則運算...
   程式設計一個程式可以算出包含下列條件的任意一個數學式。
     1.可算出+,-,×,÷。
    2.可算出含有括號"( )"之式子。
     3.可算出上式12之混合式子。
      上述13項皆須合於數學規則,第2項則只要含一組括號即可,也就是
   說可以不必顧及括號內還有括號之情況。
    測試資料:
     1. 132517×61279÷48
     2. 137637912579(35761×23761)

40、大數加法,兩個100位數以內的數字相加,列印出結果。
41、大數減法,兩個100位數以內的數字相減,列印出結果。
42、大數乘法,兩個100位數以內的數字相乘,列印出結果。
43、大數除法,兩個100位數以內的數字相除,列印出結果。

44、輸入一篇文章(字數可能多於256);分析文章中每一單字出現之次數,
   並按出現次數之高低,依序列印出所有單字及其出現次數。
   註:單字由空格、逗號、句號或換行等字符分開。
   以下列文章測試之(請將下列文章存於檔案,以開檔的方式讀取)
      MACHINE LANGUAGE IS THE BASIC LANGUAGE UNDERSTOOD BY THE COMPUTING
      MACHINE.  MOST COMPUTERS HAVE REGISTERS IN THE CPU THAT ARE SIMILAR
      TO THE REGISTER IN THE DESK CALCULATOR.  THEY ARE CAKKED ACCUMULATORS
      BECAUSE THEY ARE USED TO ACCUMULATE THE INTERMEDIATE RESULTS.  THE CPU
      CAN BE TOLD TO LOAD A NUMBER INTO ITS ACCUMULATOR FROM A SPECIFIC CELL
      IN THE MEMORY, TO ADD, SUBTRACT, MULTIPLY, OR DIVIDE THE NUMBER IN THE
      ACCUMULATOR BY A NUMBER FROM MEMORY, OR TO STORE A NUMBER FROM THE
      ACCUMULATOR INTO MEMORY.

45、一群士兵分編成如圖所示若干大隊,每一大隊又分成若干小隊,其中123
   4567表大隊,spdf等表小隊,s小隊最多可編入2人,p小隊6人,d
   小隊10人,f小隊14人,編隊方式則從1s小隊開始,按箭頭方向所示,前一小隊
   編滿額後還有人未編隊時則編入後一小隊,至全部編完為止。
      作一程式輸入士兵人數NN<100,列印出每一大隊及各小隊編隊之人數。
   例:輸入N=11,則輸出可以適當格式表示,1s小隊編2人,2s小隊2人,2p小隊
   6人,3s小隊1人,第1大隊2人,第2大隊8人,第3大隊1人。
   以下引N測試之:8,29,55,57,79,92
     1s
     
     2s 2p
        
     3s 3p   3d
           
     4s   4p   4d   4f
              
     5s   5p   5d   5f
              
     6s   6p   6d
           
     7s   6p
        
     8s

46、輸入兩帶分數P1 r1/q1 P2 r2/q2,pi,riqi(i=1,2)都是整數,求此二
   分數之和,經化為最簡分數後以帶分數印出。
   以下列分數組測試之
    1/2 + 2/3     5 1/4 + 3 1/4      3/8 + -3/8       6 2/9 + 4 1/3
    4/7 + 2/0

47、試依照下列的條件設計考生成績分配狀況的條形圖。
   (1) 成績共區分為十個等級,從091019202930394049
     505960697079808990100
   (2) 輸出的形式如下圖所示,一個*號代表二個人,奇數人數時則以進位計算
     ,同一等級以不超過50人為條件。
   (3) 當輸入資料為999時代表資料的完了。
       00--09 **
       10--19 ****
       20--29 ******
       30--39 *****
       40--49 *********
       50--59 *********.****
       60--69 *********.*********.**
       70--79 *********.******
       80--89 ******
       90--100 ****
   (4)測試用的輸入資料為:
       72,81,54,68,75,42,85,60,27,66,79,32,94,6,45,83,67,61,38,65,72,56,
       67,15,90,72,67,53,48,79,42,65,72,58,100,75,67,82,52,65,72,45,82,
       75,35,75,68,50,12,78

48、輸入兩個一組的十六進位正整數(X,Y),X,Y各數最多為4(16 bit),計算每組
   數的ANDOR,和(SUM)與差(DIFFERENCE),將X,Y值及運算結果以2進位形式列印
      出來。計算和與差時其最高位之進位、借位可以忽略。
      測試數據:(48,90)(F3,76)(48,93),(21,74)

49、假設有一生物在長100寸之旗桿的中間點上做上下移動。其移動之規律依照天候而
      變,若為晴天則當天只向下移動一寸,陰天不動,雨天則當天只向上移動,假設
      晴天、陰天、雨天出現之機率分別為5/103/102/10,試設計一程式模擬該生
      物之運動,求出50天後該生物所在之位置距離頂點多遠,及移動之總距離。試模
      5次,印出每次結果並求其平均值。

50、試設計一程式,利用二分逼近法求一數值a之開7次方根。
      所謂二分逼近法,解釋如下:
      設某數x位於線段AB=[a。﹐b]內,(亦即a。≦xb)vhbdi vfhae
      hjhneAB。等分為兩段,亦即[a,(a+ b)/2][(a+ b)/2,b];而把x
      所在的那一段稱為A1B1=[a1,b1](如果x=(a+ b)/2,則任取其中一段),換句話
      說,當a。≦x(a+ b)/2時,a1=a。,b1=(a+ b)/2,當(a+ b)/2
      xb。時,a1=(a0+b0)/2b1=b。,這樣逐次二等分而縮小範圍,就可得到x
      此法為二分逼近法。(當誤差小於0.0000001,終止等分)

沒有留言 :

張貼留言