【正文】
int x。 a 。 if (x = 0) { (arr[a] + )。 SetInteger set = new HashSetInteger()。 a 。 } for (int a = 0。 a++) { (tag[a])。 IteratorInteger it = ()。 a 。 } } (sor)。 a 。 } ()。 for (int a = 0。 a++) { y = (tag, arr[a])。 } } ()。要將這個(gè)長(zhǎng)度為N的地板鋪滿,一共有多少種不同的鋪法? 例如,長(zhǎng)度為4的地面一共有如下5種鋪法: 4=1+1+1+1 4=2+1+1 4=1+2+1 4=1+1+2 4=2+2 編程用遞歸的方法求解上述問(wèn)題。public class Main { public static void main(String []args) { Scanner input = new Scanner()。 if(1=n amp。 n=10) { if(n==1) { (1)。 tag[0] = 1。 if(n==1) { (tag[0])。an。 } (tag[n1])。例如: 137=27+23+20 同時(shí)約定方次用括號(hào)來(lái)表示,即ab 可表示為a(b)。輸出格式 程序輸出包含一行字符串,為符合約定的n的0,2表示(在表示中不能有空格)參考代碼:import 。public class Main { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader())。 toString((number))。 boolean control = false。 i 。139。 else control = true。 int mi = i 1。 else if (mi 1) { (()。 ())。但是這種導(dǎo)彈攔截系統(tǒng)有一個(gè)缺陷:雖然它的第一發(fā)炮彈能夠到達(dá)任意的高度,但是以后每一發(fā)炮彈都不能高于前一發(fā)的高度。由于該系統(tǒng)還在試用階段,所以只有一套系統(tǒng),因此有可能不能攔截所有的導(dǎo)彈。輸入格式 一行,為導(dǎo)彈依次飛來(lái)的高度輸出格式 兩行,分別是最多能攔截的導(dǎo)彈數(shù)與要攔截所有導(dǎo)彈最少要配備的系統(tǒng)數(shù)樣例輸入389 207 155 300 299 170 158 65樣例輸出62參考代碼:import .*。public class Main { public static void main(String args[]) throws IOException{ BufferedReader bf=new BufferedReader(new InputStreamReader())。 String[] ss=( )。 int[] numb=new int[]。 for(int i=0。i++){ numa[i]=(ss[i])。 numc[i]=1。 int a2=。i。ji。amp。 } a1=(a1, numb[i])。i。ji。amp。 } } a2=(a2, numc[i])。 (a2)?! ±纾航o定一個(gè)10進(jìn)制數(shù)56,將56加65(即把56從右向左讀),得到121是一個(gè)回文數(shù)?! ?xiě)一個(gè)程序,給定一個(gè)N(2=N=10或N=16)進(jìn)制數(shù)M(其中16進(jìn)制數(shù)字為09與AF),求最少經(jīng)過(guò)幾步可以得到回文數(shù)。import 。public class Main { private static int n, count。 n = (())。 long a = (m, n)。 if (a == b) (STEP= + 0)。 } private static void func(long a, long b) { count++。 return。 String str = 。 sum /= n。 else str = tmp + str。 else str = sum + str。 if (!(reverse)) { a = (str, n)。 func(a, b)。 return。給定兩個(gè)城市之間的距離D汽車油箱的容量C(以升為單位)、每升汽油能行駛的距離D出發(fā)點(diǎn)每升汽油價(jià)格P和沿途油站數(shù)N(N可以為零),油站i離出發(fā)點(diǎn)的距離Di、每升汽油價(jià)格Pi(i=1,2,……N)。如果無(wú)法到達(dá)目的地,則輸出“No Solution”。輸出格式 如果可以到達(dá)目的地,輸出一個(gè)實(shí)數(shù)(四舍五入至小數(shù)點(diǎn)后兩位),表示最小費(fèi)用;否則輸出“No Solution”(不含引號(hào))。public class Main { public static void main(String[] args) { double[][] p = new double[1024][1024]。 int i, j, k = 0。 double c = ()。 p[0][1] = ()。 n++。 i n。 p[i][1] = ()。 double f = c * d2。 i n。 return。 for (i = 0。 i++) { d = p[i + 1][0] p[i][0]。 for (j = k。 j++) if (p[j][1] p[k][1]) k = j。 if (max d) max = d。 min += max / d2 * p[k][1]。 }}編號(hào):ALGO16題目:進(jìn)制轉(zhuǎn)化關(guān)鍵字:進(jìn)制轉(zhuǎn)化類型:vip試題問(wèn)題描述:我們可以用這樣的方式來(lái)表示一個(gè)十進(jìn)制數(shù): 將每個(gè)阿拉伯?dāng)?shù)字乘以一個(gè)以該數(shù)字所處位置的(值減1)為指數(shù),以10為底數(shù)的冪之和的形式?! ∨c之相似的,對(duì)二進(jìn)制數(shù)來(lái)說(shuō),也可表示成每個(gè)二進(jìn)制數(shù)碼乘以一個(gè)以該數(shù)字所處位置的(值-1)為指數(shù),以2為底數(shù)的冪之和的形式。如果是以R或-R為基數(shù),則需要用到的數(shù)碼為 0,1,....R-1。如果作為基數(shù)的數(shù)絕對(duì)值超過(guò)10,則為了表示這些數(shù)碼,通常使用英文字母來(lái)表示那些大于9的數(shù)碼?! ≡谪?fù)進(jìn)制數(shù)中是用-R 作為基數(shù),例如-15(十進(jìn)制)相當(dāng)于110001(-2進(jìn)制),并且它可以被表示為2的冪級(jí)數(shù)的和數(shù): 110001=1*(-2)5+1*(-2)4+0*(-2)3+0*(-2)2+ ?。埃ǎ玻?+1*(-2)0 設(shè)計(jì)一個(gè)程序,讀入一個(gè)十進(jìn)制數(shù)和一個(gè)負(fù)進(jìn)制數(shù)的基數(shù), 并將此十進(jìn)制數(shù)轉(zhuǎn)換為此負(fù)進(jìn)制下的數(shù): -R∈{-2,-3,-4,...,-20}輸入格式 一行兩個(gè)數(shù),第一個(gè)是十進(jìn)制數(shù)N(-32768<=N<=32767), 第二個(gè)是負(fù)進(jìn)制數(shù)的基數(shù)-R。(格式參照樣例) 樣例輸入1 30000 2樣例輸出30000=11011010101110000(base2)樣例輸入20000 2樣例輸出20000=1111011000100000(base2)樣例輸入28800 16樣例輸出28800=19180(base16)樣例輸入25000 16樣例輸出25000=7FB8(base16)參考代碼:import 。 int N = ()。 char[] c = 0123456789ABCDEFG.toCharArray()。 String s = 。 if (t 0) { t = t R。 } else N = N / R。 } (s1 + s + (base + R + ))。在華羅庚先生的家鄉(xiāng)江蘇金壇,組織了一場(chǎng)別開(kāi)生面的數(shù)學(xué)智力競(jìng)賽的活動(dòng),你的一個(gè)好朋友XZ也有幸得以參加?! ⊥瑫r(shí),為了幫助選手能夠正確理解題意,主持人還舉了如下的一個(gè)例子: 有一個(gè)數(shù)字串:312, 當(dāng)N=3,K=1時(shí)會(huì)有以下兩種分法: 3*12=36 31*2=62 這時(shí),符合題目要求的結(jié)果是:31*2=62 現(xiàn)在,請(qǐng)你幫助你的好朋友XZ設(shè)計(jì)一個(gè)程序,求得正確的答案。輸出格式 輸出所求得的最大乘積(一個(gè)自然數(shù))。import 。import 。 ()。 ()。 ()。 String str = (M)。 for (int i = 1。 i++) { dp[0][i] = ((0, i))。 i = K。 j = N。 k = N。 for (int l = k。 l++) { font = (l) 39。 + font * 10。 } } } (dp[K][N])。輸入格式 輸入的第一行為一個(gè)單獨(dú)的整數(shù)n (n=20)表示單詞數(shù),以下n 行每行有一個(gè)單詞,輸入的最后一行為一個(gè)單個(gè)字符,表示“龍”開(kāi)頭的字母。public class Main { private static String[] a = new String[20]。 private static int max。 public static void main(String[] args) { Scanner scanner = new Scanner()。 for (int i = 0。 i++) a[i] = ()。 f(string, ())。 } private static void f(String s, int length) { for (int i = 0。 i++) if (a[i].indexOf(s) == 0 amp。 b[i] 2) { int length1 = ()。 b[i]++。 length = length + length2 length1。 p += 1。 b[i]。 }}編號(hào):ALGO19題目:方格取數(shù)關(guān)鍵字:動(dòng)態(tài)規(guī)劃類型:vip試題問(wèn)題描述: 設(shè)有N*N的方格圖(N=10),我們將其中的某些方格中填入正整數(shù),而其他的方格中則放入數(shù)字0。在走過(guò)的路上,他可以取走方格中的數(shù)(取走后的方格中將變?yōu)閿?shù)字0)。輸入格式 輸入的第一行為一個(gè)整數(shù)N(表示N*N的方格圖),接下來(lái)的每行有三個(gè)整數(shù),前兩個(gè)表示位置,第三個(gè)數(shù)為該位置上所放的數(shù)。輸出格式 只需輸出一個(gè)整數(shù),表示2條路徑上取得的最大的和。import 。public class Main{ static int x。 static int n。 n = (())。 int[][] arr = new int[n * n][2]。 。 for (int j = 0。 j++) { x = arr[i][0] = (str[0])。 tag[x][y] = (str[2])。amp。amp。 break out。 int k。 i = 2 * n。 j 0。 k 0。 temp[j][k] = max(temp[j][k], temp[j 1][k])。 if (j == k) temp[j][k] += tag[j][i j]。 } } } (temp[n][n])。 } public static int min(int a, int b) { return a b ? b : a。求出它的先序排列。輸入格式 兩行,每行一個(gè)字符串,分別表示中序和后序排列輸出格式 一個(gè)字符串,表示所求先序排列 樣例輸入 BADC BDCA樣例輸出ABCD參考代碼:import 。 while (()) { String str1 = ()。 showResult(str1, str2)。 } } private static void showResult(String str1, String str2) { char chl = (() 1)。 int index = (chl)。 } if (index () 1) { showR