【測驗M07】雄中八十九學年度『資訊學科能力競賽』程式設計試題 [回前頁]
一、輸入兩個長位數的定點實數
並計算其相乘的結果,並利用以上之結果,在輸一個數N(N為1至9之正整數)後,可逼近其開立方根(
)值至小數點下第二十位。
註:1.計算結果的精確度至少可達到100位。
2.計算結果『不』得以指數形式顯示(例:3.141596E+4)
3.在此題之中,『負數』是可接受的。
4.不得使用與次方相關之指令或內建函數,例^,pwd等
例:(1)Num1=1234.5678
Num2=0.00123467
Result =
1.524283825626
(2)N=?2
2^(1/3)=1.25992104989487316476
測 試 資 料 | |
(1)Num1=1234.5678 |
(1)Num1=987654321.123 |
(1)Num1=0.00123 |
(1)Num1=0.00999 |
二、試作出一能作質因數分解之程式,若是質數,則顯示出是「質數」,在顯示時,質數由「大至小」顯示,冪方以「^」來代表,而乘號以「*」來代表:
(N>=2, N為長整數)
例:Input N=192
192=3^1*2^6
測 試 資 料 | |
Input N=8 |
Input N=53 |
Input N=17 |
Input N=100 |
Input N=92 |
Input N=91 |
三、現在台幣有「50元」、「10元」、「5元」、「1元」等種錢幣,因此,如果現在有15元的話,可以找錢的方式就有6種。
現在,請您作出一個程式,在使用者輸入完幣值後,再輸入金額,便能計算出到底有多少種找錢的方式,「無」須顯示出找錢的方式為何,只要顯示有多少種。
請注意的是:幣種可以多種,最多可達六種,但不會為「非正整數」,輸入時,使用者會由大而小的輸入,也不會刻意輸入兩種相同的幣值。但幣值不一定為多少,有可能為10,8,5,2,1,也可以為其他奇奇怪怪的數字,例17,15,13,1等等。另外,由於讓程式容易判斷,輸入的金額將只會介於1∼100,不會有太大的現像。
測 試 資 料 | |
請輸入幣值(輸入0作結束): |
請輸入幣值(輸入0作結束): |
請輸入幣值(輸入0作結束): |
請輸入幣值(輸入0作結束): |
請輸入幣值(輸入0作結束): |
請輸入幣值(輸入0作結束): |
四、蜜蜂是一種實施「單性生殖」的動物,也就是就,一隻雌蜂一定有一個父親以及一個母親;但是一隻雄蜂一定只有一個母親,而沒有父親。同理可以判斷出來,一隻雌蜂的上兩代一定有外公、外婆、祖母,但一定沒有祖父;而一隻雄蜂的上兩代一定有外公、外婆,但因為沒有父親,所以也不可能有祖父及祖母。
現在,請您設計一個程式,在輸入n代(Generation)後,及該蜂的性別(0,1分別代表女男),能將這隻蜜蜂的「家族樹」(只需用0,1顯示性別即可)以直角三角形狀繪出,其中父母一定位於子女的下一行的(正下方,若只有母親,母親在正下方,若同時有父母,父位於正下方,母位於右下方),也就是說,第一代位於第一行、第二代位於第二行、….第n代位於第n行;另外,父母親的顯示以「男左女右」的方式呈現,最後一代(第n代)的親屬將緊密呈現,不得有空白的存在(如下測試資料所示)。
最後,再將本家族最有總人數給顯示出在最下面。
五、試以亂數發樸克排,發為四份,並達到
1.AJQK不得以1,11,12,13等方式呈現
2.每份樸克排拿到時即以"大老二"的方式來排序,即花色依
黑桃、紅心、方塊、梅花來排列,而數字則以2,A,K,Q
,J,10,9~3等順序排出,牌最小者最後顯示:
3.第一份牌,一定是握有梅花3者
六、羅馬數字是分別以I,V,X,L,C,D,M來代表1,5,10,50,100,500,1000的一種數字系統,而其他的數字,則是前列的字母以位中央的主數以左減、右加的方式複合而成(例:IV=4[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~3是I,4~8是V,9~39為X,40~89為L,90~399為C,而400~899為D,而900~3999為M
下面有兩個子題,每題10分,請依序作出
(1)在輸入一個1~3999的阿拉伯數字後,將其轉換成為用羅馬數字來表示
(2)在輸入一個羅馬數字後,請表示成阿拉伯數字(請特別注意,此子題非常重視數「合法性」的判斷,若所輸之羅馬數字不合法,應顯示不合法,不應算出其值)
測 試 資 料 | |
(1)Arabic N=43 |
(1)Arabic N=1898 |
(1)Arabic N=99 |
(1)Arabic N=3999 |
(1)Arabic N=491 |
(1)Arabic N=498 |