16-20题
16.試題編號(hào):J1-16 《中學(xué)生數(shù)學(xué)輔助學(xué)習(xí)系統(tǒng)》關(guān)鍵算法
(1)任務(wù)描述 由于中學(xué)數(shù)學(xué)是培養(yǎng)數(shù)學(xué)思維的基礎(chǔ)階段,為了讓學(xué)生打造一個(gè)堅(jiān)實(shí)的數(shù)學(xué)基礎(chǔ),A 學(xué) 校決定開發(fā)一個(gè)中學(xué)生數(shù)學(xué)輔助學(xué)習(xí)系統(tǒng),通過(guò)完成趣味試題,采用游戲通關(guān)的方式,幫助 中學(xué)生初步掌握二元一次方程解簡(jiǎn)單應(yīng)用題的方法和步驟,并會(huì)列出二元一次方程解簡(jiǎn)單的 應(yīng)用題。
任務(wù)一:實(shí)現(xiàn)汽車與摩托問(wèn)題的關(guān)鍵算法并繪制流程圖(30 分) 在一個(gè)停車場(chǎng)內(nèi),汽車、摩托車共停了 48 輛,其中每輛汽車有 4 個(gè)輪子,每輛摩托車 有 3 個(gè)輪子,這些車共有 172 個(gè)輪子,編程輸出停車場(chǎng)內(nèi)有汽 車和摩托車的數(shù)量。 注意:用循環(huán)語(yǔ)句實(shí)現(xiàn)。
public class Teast1 {public static void main(String[] args) {//定義x為汽車數(shù)量,y為摩托車數(shù)量int x=1;while (x<48) {if (x*4+(48-x)*3==172) {System.out.println("汽車的數(shù)量為:"+x);System.out.println("摩托車的數(shù)量為:"+(48-x));}}} }任務(wù)二:實(shí)現(xiàn)雞兔同籠問(wèn)題的關(guān)鍵算法并繪制流程圖(30 分) 已知雞和兔的總數(shù)量為 n,總腿數(shù)為 m。輸入 n 和 m,依次輸出雞和兔的數(shù)目,如果無(wú)解, 則輸出“No answer”(不要引號(hào))。注意:用循環(huán)語(yǔ)句實(shí)現(xiàn)。
import java.util.Scanner;public class Test2 {public static void main(String[] args) {int j,t;Scanner scanner=new Scanner(System.in);System.out.println("請(qǐng)輸入雞兔的總數(shù):");int n=scanner.nextInt();System.out.println("請(qǐng)輸入雞兔的腿總數(shù):");int m=scanner.nextInt();jito(n, m);}public static void jito(int n,int m) {int count=1;//雞for ( count = 1; count <n; count++) {if ((count*2+(n-count)*4)==m) {System.out.println(count);System.out.println(n-count);}else {System.out.println("NO answer");}}} }任務(wù)三:實(shí)現(xiàn)合格電視機(jī)問(wèn)題的關(guān)鍵算法并繪制流程圖(30 分) 某電視機(jī)廠每天生產(chǎn)電視 500 臺(tái),在質(zhì)量評(píng)比中,每生產(chǎn)一臺(tái)合格電視機(jī)記 5 分,每生 產(chǎn)一臺(tái)不合格電視機(jī)扣 18 分。如果四天得了 9931 分,編程計(jì)算這四天生產(chǎn)的合格電視機(jī)的 臺(tái)數(shù),并輸出。 注意:用循環(huán)語(yǔ)句實(shí)現(xiàn)。 (2)作品提交要求見本模塊附錄 1 (3)實(shí)施條件要求見本模塊附錄 2 (4)評(píng)價(jià)標(biāo)準(zhǔn)見本模塊附錄 3
public class Test1 {public static void main(String[] args) {// 設(shè)合格的電視機(jī)臺(tái)數(shù)為xint x = 1;// 不合格的電視機(jī)臺(tái)數(shù)為4*500-x;for (x = 1; x < 2000; x++) {if (5 * x - (500 * 4 -x) * 18 == 9931) {System.out.println("合格的電視機(jī)臺(tái)數(shù)為:" + x);}}} }17.試題編號(hào):J1-17《幾何圖形公式記憶系統(tǒng)》關(guān)鍵算法
(1)任務(wù)描述 由于幾何圖形的公式繁多且不好記憶,為了讓學(xué)生能快速并輕松的記住這些公式,A 學(xué) 校決定開發(fā)一個(gè)幾何圖形公式記憶系統(tǒng),通過(guò)完成趣味試題,采用游戲通關(guān)的方式,幫助學(xué) 生輕松記住幾何圖形的公式。請(qǐng)完成以下任務(wù)。
任務(wù)一:實(shí)現(xiàn)圖形計(jì)算功能 1 關(guān)鍵算法并繪制流程圖(30 分) 輸入一個(gè)正方體的變長(zhǎng)(a)計(jì)算盒子體積。 注意:結(jié)果保留兩位小數(shù)。
import java.util.Scanner;public class Task1 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("請(qǐng)輸入正方體的邊長(zhǎng):");int x = sc.nextInt();volume(x);}/*** 輸入正方體的邊長(zhǎng),求正方體的體積* * @return 正方體的體積*/public static int volume(int x) {int v = 0;v = x * x * x;System.out.println("正方體的體積為:" + v);return v;}}任務(wù)二:實(shí)現(xiàn)圖形計(jì)算功能 2 關(guān)鍵算法并繪制流程圖(30 分) 輸入三個(gè)數(shù),分別是圓柱體底圓的高 h,半徑 r,請(qǐng)你編程求出該圓柱的表面積。 注意:PI = 3.14,輸出結(jié)果保留兩位小數(shù)。
import java.text.DecimalFormat; import java.util.Scanner;public class Task2 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("請(qǐng)輸入圓柱體的半徑:");double r = sc.nextDouble();System.out.println("請(qǐng)輸入圓柱體的高:");double h = sc.nextDouble();volume(r, h);}/*** 鍵盤輸入圓柱體的高的半徑,求圓柱體的體積* * @param r* 圓柱體的半徑* @param h* 圓柱體的高* @return 圓柱體的體積*/public static double volume(double r, double h) {double v = 0;v = 3.14 * r * r * h;DecimalFormat df = new DecimalFormat("######0.00");System.out.println("圓柱體的體積為:" + df.format(v));return v;}}任務(wù)三:實(shí)現(xiàn)圖形計(jì)算功能 3 關(guān)鍵算法并繪制流程圖(30 分) 輸入三個(gè)數(shù),分別是三角形的三條邊 a,b,c,請(qǐng)你編程求出該三角形邊長(zhǎng)。 注意:題目的輸入數(shù)據(jù)合法。 (2)作品提交要求見本模塊附錄 1 (3)實(shí)施條件要求見本模塊附錄 2 (4)評(píng)價(jià)標(biāo)準(zhǔn)見本模塊附錄 3 18.試題編號(hào):
import java.util.Scanner;public class Task3 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("請(qǐng)輸入三角形的邊長(zhǎng):");double a = sc.nextDouble();System.out.println("請(qǐng)輸入三角形的邊長(zhǎng):");double b = sc.nextDouble();System.out.println("請(qǐng)輸入三角形的邊長(zhǎng):");double c = sc.nextDouble();perimeter(a, b, c);}/*** 輸入三個(gè)數(shù),分別是三角形的三條邊 a,b,c,請(qǐng)你編程求出該三角形周長(zhǎng)。* * @param a* 三角形的邊長(zhǎng)* @param b* 三角形的邊長(zhǎng)* @param c* 三角形的邊長(zhǎng)* @return 三角形的周長(zhǎng)*/public static double perimeter(double a, double b, double c) {double C = 0;if (a + b > c && a + c > b && b + c > a) {C = a + b + c;System.out.println("三角形的周長(zhǎng)為:" + C);} else {System.out.println("您輸入的邊長(zhǎng)不能構(gòu)成三角形");}return C;}}J1-18《在線考試系統(tǒng)》關(guān)鍵算法
(1)任務(wù)描述 在線考試系統(tǒng)可以節(jié)約大量的紙張,也能大大減輕閱卷的工作量。越來(lái)越多的學(xué)校開始 引進(jìn)在線考試系統(tǒng)。題庫(kù)是該系統(tǒng)的關(guān)鍵模塊,題庫(kù)中每道題均需提供參考答案,請(qǐng)完成以 下任務(wù)來(lái)充實(shí)在線考試系統(tǒng)的題庫(kù)。
任務(wù)一:實(shí)現(xiàn)細(xì)胞繁衍關(guān)鍵算法并繪制流程圖(30 分) 有一種細(xì)胞,從誕生第二天開始就能每天分裂出一個(gè)新的細(xì)胞,新的細(xì)胞在第二天又開 始繁衍。假設(shè)在第一天,有一個(gè)這樣的細(xì)胞,請(qǐng)問(wèn),在第 N 天晚上,細(xì)胞的數(shù)量是多少?輸 入一個(gè)整數(shù) N(0 < N < 20),請(qǐng)編程求解第 N 天該細(xì)胞的數(shù)量。例如輸入 5,輸出答案為 32。 注意:使用循環(huán)或者遞歸完成。
import java.util.Scanner;/*** 求解第N天該細(xì)胞的數(shù)量* * @author acer**/ public class Task1 {public static void main(String[] args) {int sum = 0; // 細(xì)胞的數(shù)量int start = 1; // 第一天細(xì)胞的數(shù)量System.out.println("請(qǐng)輸入天數(shù): ");Scanner scanner = new Scanner(System.in);int N = scanner.nextInt();if (N > 0 && N < 20) {for (int i = 0; i < N; i++) {start = start * 2;sum = start;}System.out.println(sum);} else {System.out.println("您輸入的整數(shù)有誤");}} }任務(wù)二:實(shí)現(xiàn)超級(jí)樓梯關(guān)鍵算法并繪制流程圖(30 分) 有一樓梯共 M 級(jí),剛開始時(shí)你在第一級(jí),若每次只能跨上一級(jí)或二級(jí),要走上第 M 級(jí), 共有多少種走法?輸入一個(gè)整數(shù) M(1<=M<=40),表示樓梯的級(jí)數(shù)。例如: 上到第二層就有 2 種 第三層就 3 種 第四層就有 5 種 第五層就有 8 種 第六 就有 13 種 …… 注意:使用遞歸或循環(huán)實(shí)現(xiàn)。
import java.util.Scanner;public class Task2 {public static void main(String[] args) {System.out.println("請(qǐng)輸入一個(gè)整數(shù): ");Scanner scanner = new Scanner(System.in);int M = scanner.nextInt();if (M >= 1 && M <= 40) {int num = louCeng(M);System.out.println(num);} else {System.out.println("您輸入的整數(shù)有誤");}}/*** 有一樓梯共M級(jí),剛開始時(shí)你在第一級(jí),若每次只能跨上一級(jí)或二級(jí),要走上第M級(jí), 共有多少種走法?輸入一個(gè)整數(shù)M(1<=M<=40),表示樓梯的級(jí)數(shù)* * @param M* @return*/public static int louCeng(int M) {int f1 = 1; // 第一層int f2 = 2; // 第二層int sum = 0;for (int i = 1; i < M; i++) {if (i > 1) {sum = f2 + f1;f1 = f2;f2 = sum;} else {sum = 2;}}return sum;}} 任務(wù)三:實(shí)現(xiàn)手機(jī)短號(hào)計(jì)算關(guān)鍵算法并繪制流程圖(30 分) 大家都知道,手機(jī)號(hào)是一個(gè) 11 位長(zhǎng)的數(shù)字串,同時(shí)作為學(xué)生,還可以申請(qǐng)加入校園網(wǎng), 如果加入成功,你將另外擁有一個(gè)短號(hào)。假設(shè)所有的短號(hào)都是 6+手機(jī)號(hào)的后 5 位,比如號(hào) 碼為 13512345678 的手機(jī),對(duì)應(yīng)的短號(hào)就是 645678。
現(xiàn)在,如果給你一個(gè) 11 位長(zhǎng)的手機(jī)號(hào)碼,你能找出對(duì)應(yīng)的短號(hào)嗎?要求:輸入一個(gè)手 機(jī)號(hào)輸出對(duì)應(yīng)的手機(jī)短號(hào)。
注意:使用遞歸實(shí)現(xiàn)或循環(huán)實(shí)現(xiàn)。 (2)作品提交要求見本模塊附錄 1 (3)實(shí)施條件要求見本模塊附錄 2 (4)評(píng)價(jià)標(biāo)準(zhǔn)見本模塊附錄 3
19.試題編號(hào):J1-19《OJ 系統(tǒng)》題庫(kù)關(guān)鍵算法
(1)任務(wù)描述 在線評(píng)判系統(tǒng)(簡(jiǎn)稱 OJ,Online Judge)指在線用來(lái)評(píng)判程序的正確性、時(shí)間與效率空間 效率的評(píng)判系統(tǒng)。現(xiàn)需要為特定題目設(shè)計(jì)正確算法以便擴(kuò)充題庫(kù),請(qǐng)完成以下任務(wù)。
任務(wù)一:實(shí)現(xiàn)問(wèn)題一關(guān)鍵算法并繪制流程圖(30 分) 編寫一個(gè)程序,該程序讀取一個(gè)字符串,然后輸出讀取的空格數(shù)目。 注意:輸入字符串的長(zhǎng)度不超過(guò) 30 個(gè)字符(含空格)。
import java.util.Scanner;/* *截取空格 */ public class Task1 {public static void main(String[] args) {System.out.print("輸入字符串:");Scanner s = new Scanner(System.in);System.out.print(fun(s.nextLine()));}public static int fun(String n) {int count = 0;for (int i = 0; i < n.length(); i++) {char sig = n.charAt(i);if (sig == ' ') count++;}return count;} }任務(wù)二:實(shí)現(xiàn)問(wèn)題二關(guān)鍵算法并繪制流程圖(30 分) 中國(guó)古代的《算經(jīng)》記載了這樣一個(gè)問(wèn)題:公雞 5 文錢 1 只,母雞 3 文錢 1 只,小雞 1 文錢 3 只,如果用 100 文錢買 100 只雞,那么公雞、母雞和小雞各應(yīng)該買多少只呢?現(xiàn)在請(qǐng) 你編程求出所有的解,每個(gè)解輸出 3 個(gè)整數(shù),打印在一行,用空格隔開,分別代表買的公雞、 母雞、小雞的數(shù)量。 注意:100 文錢要正好用完。請(qǐng)輸出所有的解,每個(gè)解占一行。
public class Task2 {public static void main(String[] args) {ji();}/*** 公雞 5 文錢 1 只,母雞 3 文錢 1 只,小雞 1文錢 3 只,* 如果用 100 文錢買 100 只雞,那么公雞、母雞和小雞* 各應(yīng)該買多少只呢?現(xiàn)在請(qǐng)你編程求出所有的解,每個(gè)解* 輸出 3 個(gè)整數(shù),打印在一行,用空格隔開,分別代表買的* 公雞、母雞、小雞的數(shù)量。*/public static void ji() {int x = 0;// 公雞int y = 0;// 母雞int z = 0;// 小雞for (int i = 0; i < 20; i++) {for (int j = 0; j < 33; j++) {for(int k =0; k<300; k++){if (i*5 + j*3 + k/3 == 100 && i+j+k ==100) {x = i;y = j;z = (100-i-j);break;}}}}System.out.println("公雞有:"+x+"只");System.out.println("母雞有:"+y+"只");System.out.println("小雞有:"+z+"只");}}任務(wù)三:實(shí)現(xiàn)問(wèn)題三關(guān)鍵算法并繪制流程圖(30 分) 有一天愛因斯坦給他的朋友出了一個(gè)題目,有一個(gè)樓,其兩層之間有一個(gè)很長(zhǎng)的階梯。 如果一個(gè)人每步上 2 階,最后剩 1 階;如果一個(gè)人每步上 3 階,最后剩 2 階;如果一個(gè)人每 步上 5 階,最后剩 4 階;如果一個(gè)人每步上 6 階,最后剩 5 階;如果一個(gè)人每步上 7 階,最 后剛好一階也不剩。問(wèn)這個(gè)階梯至少有多少階呢? 注意:請(qǐng)編程求出最小的一個(gè)答案并輸出。 (2)作品提交要求見本模塊附錄 1 (3)實(shí)施條件要求見本模塊附錄 2 (4)評(píng)價(jià)標(biāo)準(zhǔn)見本模塊附錄 3 20.試題編號(hào):
public class Task3 {public static void main(String[] args) {jieTi();}/*** 有一個(gè)樓,其兩層之間有一個(gè)很長(zhǎng)的階梯。* 如果一個(gè)人每步上 2 階,最后剩 1 階;* 如果一個(gè)人每步上 3 階,最后剩 2 階;* 如果一個(gè)人每步上 5 階,最后剩 4 階;* 如果一個(gè)人每步上 6 階,最后剩 5 階;* 如果一個(gè)人每步上 7 階,最后剛好一階也不剩。* 問(wèn)這個(gè)階梯至少有多少階呢?*/public static void jieTi(){int x =0;while(true){x++;if(x%2==1 && x%3==2 && x%5==4 && x%6==5 && x%7==0){break;}}System.out.println("有"+x+"階");} }J1-20《統(tǒng)計(jì)問(wèn)題處理系統(tǒng)》關(guān)鍵算法
(1)任務(wù)描述 統(tǒng)計(jì)學(xué)是通過(guò)搜索、整理、分析、描述數(shù)據(jù)等手段,以達(dá)到推斷所測(cè)對(duì)象的本質(zhì),甚至 預(yù)測(cè)對(duì)象未來(lái)的一門綜合性科學(xué)。其中用到了大量的數(shù)學(xué)及其它學(xué)科的專業(yè)知識(shí),它的使用 范圍幾乎覆蓋了社會(huì)科學(xué)和自然科學(xué)的各個(gè)領(lǐng)域。某公司設(shè)計(jì)出一款統(tǒng)計(jì)問(wèn)題處理系統(tǒng),系 統(tǒng)需要不斷進(jìn)行樣本“訓(xùn)練”,以完成復(fù)雜的統(tǒng)計(jì)功能。為實(shí)現(xiàn)該系統(tǒng),請(qǐng)完成以下任務(wù)。
任務(wù)一:實(shí)現(xiàn)統(tǒng)計(jì)問(wèn)題 1 關(guān)鍵算法并繪制流程圖(30 分) 輸出數(shù)組第 k 大的數(shù)。 說(shuō)明:首先輸入一個(gè)整數(shù) n,代表數(shù)組的長(zhǎng)度,隨后輸入 n 個(gè)數(shù),代表數(shù)組的元素,最 后輸入一個(gè)整數(shù) k,你需要輸出這 n 個(gè)數(shù)中第 k 大的數(shù)(0<k<=n)。 例如輸入: 5 5 3 1 2 4 3 輸出這 5 個(gè)數(shù)中第 3 大的數(shù):
3 注意:使用數(shù)組完成。
任務(wù)二:實(shí)現(xiàn)統(tǒng)計(jì)問(wèn)題 2 關(guān)鍵算法并繪制流程圖(30 分) 統(tǒng)計(jì)給定的 n 個(gè)數(shù)中,負(fù)數(shù)、零和正數(shù)的個(gè)數(shù)。對(duì)于每組輸入數(shù)據(jù),輸出一行 a,b 和 c, 分別表示給定的數(shù)據(jù)中負(fù)數(shù)、零和正數(shù)的個(gè)數(shù)。首先輸入一個(gè)數(shù) n,代表有需要統(tǒng)計(jì)的有 n 個(gè)數(shù),然后輸入 n 個(gè)數(shù)。
例如輸入:
5
1 2 3 0 -4
輸出: 1 1 3 注意:使用數(shù)組和判斷語(yǔ)句完成。
/*** 統(tǒng)計(jì)給定的 n 個(gè)數(shù)中,負(fù)數(shù)、零和正數(shù)的個(gè)數(shù)。對(duì)于每組輸入數(shù)據(jù),輸出一行 a,b 和 c, 分別表示給定的數(shù)據(jù)中負(fù)數(shù)、零和正數(shù)的個(gè)數(shù)。首先輸入一個(gè)數(shù)* n,代表有需要統(tǒng)計(jì)的有 n 個(gè)數(shù),然后輸入 n 個(gè)數(shù)* * @author * */ public class Task2 {public static void main(String[] args) {int[] arr = { 1, 2, 3, 0, -4 };int zero = 0;int zheng = 0;int fu = 0;for (int i = 0; i < arr.length; i++) {if (arr[i] == 0) {zero++;} else if (arr[i] > 0) {zheng++;} else {fu++;}}System.out.println(fu + "," + zero + "," + zheng);}}任務(wù)三:實(shí)現(xiàn)統(tǒng)計(jì)問(wèn)題 3 關(guān)鍵算法并繪制流程圖(30 分) 幸運(yùn)數(shù)是波蘭數(shù)學(xué)家烏拉姆命名的。它采用與生成素?cái)?shù)類似的“篩法”生成。 首先從 1 開始寫出自然數(shù) 1,2,3,4,5,6,....。1 就是第一個(gè)幸運(yùn)數(shù)。我們從 2 這個(gè)數(shù)開 始。把所有序號(hào)能被 2 整除的項(xiàng)刪除,變?yōu)?#xff1a;1 _ 3 _ 5 _ 7 _ 9 ....把它們縮緊,重新記 序,為:1 3 5 7 9 .... 。這時(shí),3 為第 2 個(gè)幸運(yùn)數(shù),然后把所有能被 3 整除的序號(hào)位置 的數(shù)刪去。注意,是序號(hào)位置,不是那個(gè)數(shù)本身能否被3整除!! 刪除的應(yīng)該是5,11, 17, ...。 此時(shí) 7 為第 3 個(gè)幸運(yùn)數(shù),然后再刪去序號(hào)位置能被 7 整除的(19,39,...) ,最后剩下的序列 類似:1, 3, 7, 9, 13, 15, 21, 25……。 注意:請(qǐng)你根據(jù)幸運(yùn)數(shù)的生成規(guī)則,編寫程序打印 100 以內(nèi)的幸運(yùn)數(shù)。輸出占一行,每 個(gè)數(shù)字后面輸出一個(gè)空格。 (2)作品提交要求見本模塊附錄 1 (3)實(shí)施條件要求見本模塊附錄 2 (4)評(píng)價(jià)標(biāo)準(zhǔn)見本模塊附錄 3
import java.util.LinkedList;/*** 請(qǐng)你根據(jù)幸運(yùn)數(shù)的生成規(guī)則,編寫程序打印 100 以內(nèi)的幸運(yùn)數(shù)。輸出占一行,每* 個(gè)數(shù)字后面輸出一個(gè)空格* * */ public class Tastk3 {public static void main(String[] args) {LinkedList<Integer> arr = new LinkedList<Integer>();for (int i = 1; i <= 100; i++) {arr.add(i);}int delIndex = 2;int i = 1;while (i < 3) {for (int j = arr.size() - 1; j >= 1; j--) {if ((j + 1) % delIndex == 0) {arr.remove(j);}}i++;delIndex++;}System.out.println(arr);} }
?
轉(zhuǎn)載于:https://www.cnblogs.com/xiaoqianbook/p/9672058.html
總結(jié)
- 上一篇: ADO中的对象关系
- 下一篇: 网络互连(IPV4+NAT技术+ARP+