【4.61】如果整數(shù)A的全部因子(包括1,不包括A本身)之和等于B;且整數(shù)B的全部因子(包括1,不包括B本身)之和等于A,則將整數(shù)A和B稱為親密數(shù)。求3000以內的全部親密數(shù)。
【4.62】猜數(shù)游戲。由計算機"想"一個數(shù)請人猜,如果人猜對了,則結束游戲,否則計算機給出提示,告訴人所猜的數(shù)是太大還是太小,直到人猜對為止。計算機記錄人猜的次數(shù),以此可以反映出猜數(shù)者"猜"的水平。
【4.63】編寫程序求出1000!后有多少個零。
【4.64】求矩陣 A[2*3] 的轉置矩陣 B[3*2]。設矩陣 A 為:
┏ 1 2 3 ┓ ┏ 1 4 ┓
A = ┃ ┃ B = ┃ 2 5 ┃
┗ 4 5 6 ┛ ┗ 3 6 ┛
【4.65】十個小孩圍成一圈分糖果,老師分給第一個小孩10塊,第二個小孩2塊,第三個小孩8塊,第四個小孩22塊,第五個小孩16塊,第六個小孩4塊,第七個小孩10塊,第八個小孩6塊,第九個小孩14 塊,第十個小孩20塊。然后所有的小孩同時將自己手中的糖分一半給右邊的小孩;糖塊數(shù)為奇數(shù)的人可向老師要一塊。問經過這樣幾次調整后大家手中的糖的塊數(shù)都一樣?每人各有多少塊糖?
【4.66】輸入5×5的數(shù)組,編寫程序實現(xiàn):
(1)求出對角線上各元素的和;
(2)求出對角線上行、列下標均為偶數(shù)的各元素的積;
(3)找出對角線上其值最大的元素和它在數(shù)組中的位置。
【4.67】編寫程序,以字符形式輸入一個十六進制數(shù),將其變換為一個十進制整數(shù)后輸出。
【4.68】編寫程序,輸入一個十進制整數(shù),將其變換為二進制后儲存在一個字符數(shù)組中。
【4.69】編寫程序,輸出1000以內的所有完數(shù)及其因子。所謂完數(shù)是指一個整數(shù)的值等于它的因子之和,例如6的因子是1、2、3,而6=1+2+3,故6是一個完數(shù)。
【4.70】對數(shù)組A中的N(0 【4.71】現(xiàn)將不超過2000的所有素數(shù)從小到大排成第一行,第二行上的每個數(shù)都等于它"右肩"上的素數(shù)與"左肩"上的素數(shù)之差。請編程求出:第二行數(shù)中是否存在這樣的若干個連續(xù)的整數(shù),它們的和恰好是1898?假如存在的話,又有幾種這樣的情況? 第一行:2 3 5 7 11 13 17 ..... 1979 1987 1993 第二行: 1 2 2 4 2 4 ..... 8 6 【4.72】將1、2、3、4、5、6、7、8、9九個數(shù)字分成三組,每個數(shù)字只能用一次,即每組三個數(shù)不許有重復數(shù)字,也不許同其它組的三個數(shù)字重復,要求將每組中的三位數(shù)組成一個完全平方數(shù)。 【4.73】一個自然數(shù)的七進制表達式是一個三位數(shù),而這個自然數(shù)的九進制表示也是一個三位數(shù),且這兩個三位數(shù)的數(shù)碼順序正好相反,求這個三位數(shù)。 【4.74】使用數(shù)組精確計算M/N(0 為了實現(xiàn)高精度計算結果,可將商M存放在有N(N>1)個元素的一維數(shù)組中,數(shù)組的每個元素存放一位十進制數(shù),即商的第一位存放在第一個元素中,商的第二位存放在第二個元素中……,依次類推。這樣可使用數(shù)組來表示計算的結果。 【4.75】使用數(shù)組完成兩個超長(長度小于100)正整數(shù)的加法。 為了實現(xiàn)高精度的加法,可將正整數(shù)M存放在有N(N>1)個元素的一維數(shù)組中,數(shù)組的每個元素存放一位十進制數(shù),即個位存放在第一個元素中,十位存放在第二個元素中……,依次類推。這樣通過對數(shù)組中每個元素的按位加法就可實現(xiàn)對超長正整數(shù)的加法。 【4.76】使用數(shù)組完成兩個超長(長度小于100)正整數(shù)的加法。 為了實現(xiàn)高精度的加法,可將正整數(shù)M存放在有N(N>1)個元素的一維數(shù)組中,數(shù)組的每個元素存放一位十進制數(shù),即個位存放在第一個元素中,十位存放在第二個元素中……,依次類推。這樣通過對數(shù)組中每個元素的按位加法就可實現(xiàn)對超長正整數(shù)的加法。 【4.77】使用數(shù)組完成兩個超長(長度小于100)正整數(shù)的乘法。 【4.78】馬步遍歷問題:已知國際象棋棋盤有8*8共64個格子。設計一個程序,使棋子從某位置開始跳馬,能夠把棋盤上的格子走遍。每個格子只允許走一次。 【4.79】八皇后問題: 在一個8×8的國際象棋盤,有八個皇后,每個皇后占一格;要求棋盤上放上八個皇后時不會出現(xiàn)相互"攻擊"的現(xiàn)象,即不能有量個皇后在同一行、列或對角線上。問共有多少種不同的方法。 【4.80】編制一個計算函數(shù)y=f(x)的值程序,其中: -x + 2.5 0<= x <2 y= 2 - 1.5(x-3)*(x-3) 2<= x <4 x/2 - 1.5 4<= x <6 【4.81】編寫程序,實現(xiàn)比較兩個分數(shù)的大小。 【4.82】求這樣一個三位數(shù),該三位數(shù)等于其每位數(shù)字的階乘之和。 即: abc = a! + b! + c! 【4.83】已知兩個平方三位數(shù)abc和xyz,其中數(shù)碼a、b、c、x、y、z未必是不同的;而ax、by、cz是三個平方二位數(shù)。編寫程序,求三位數(shù)abc和xyz。任取兩個平方三位數(shù)n和n1,將n從高向低分解為a、b、c,將n1從高到低分解為x、y、z。判斷ax、by、cz是否均為完全平方數(shù)。 【4.84】找出一個二維數(shù)組中的鞍點,即該位置上的元素是該行上的最大值,是該列上的最小值。二維數(shù)組也可能沒有鞍點。 【4.85】將數(shù)字1、2、3、4、5、6填入一個2行3列的表格中,要使得每一列右邊的數(shù)字比左邊的數(shù)字大,每一行下面的數(shù)字比上面的數(shù)字大。編寫程序求出按此要求可有幾種填寫方法? 【4.86】編寫一個函數(shù)實現(xiàn)將字符串str1和字符串str2合并,合并后的字符串按其ASCII碼值從小到大進行排序,相同的字符在新字符串中只出現(xiàn)一次。 【4.87】已知計算x的n階勒讓德多項式值的公式如下: 1 (n=0) Pn(x) = x (n=1) ( (2n-1)*x*Pn-1(x)-(n-1)*Pn-2(x))/n (n>1) 請編寫遞歸程序實現(xiàn)。 【4.88】編寫函數(shù),采用遞歸方法實現(xiàn)將輸入的字符串按反序輸出。 【4.89】編寫函數(shù),采用遞歸方法在屏幕上顯示如下楊輝三角形: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 …… …… …… …… …… 【4.90】編寫函數(shù),采用遞歸方法將任一整數(shù)轉換為二進制形式。 【4.91】設有字母a、b、c,請編程用遞歸的方法產生由這些字母組成的,且長度為n的所有可能的字符串。例如,輸入n=2,則輸出: aa ab ac ba bb bc ca cb cc