版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、算法編程試題=算法編程試題【程序1】題目:古典問題:有一對(duì)兔子,從出生后第3個(gè)月起每個(gè)月都生一對(duì)兔子,小兔子長(zhǎng)到第三個(gè)月后每個(gè)月又生一對(duì)兔子,假如兔子都不死,問每個(gè)月的兔子總數(shù)為多少?1.程序分析:兔子的規(guī)律為數(shù)列1,1,2,3,5,8,13,21.【程序2】題目:判斷101-200之間有多少個(gè)素?cái)?shù),并輸出所有素?cái)?shù)。1.程序分析:判斷素?cái)?shù)的方法:用一個(gè)數(shù)分別去除2到sqrt(這個(gè)數(shù)),如果能被整除,則表明此數(shù)不是素?cái)?shù),反之是素?cái)?shù)。做了【程序3】題目:打印出所有的水仙花數(shù)“,所謂“水仙花數(shù)“是指一個(gè)三位數(shù),其各位數(shù)字立方和等于該數(shù)本身。例如:153是一個(gè)水仙花數(shù),因?yàn)?53=1的三次方+5的三次
2、方+3的三次方。1.程序分析:利用for循環(huán)控制100-999個(gè)數(shù),每個(gè)數(shù)分解出個(gè)位,十位,百位?!境绦?】題目:將一個(gè)正整數(shù)分解質(zhì)因數(shù)。例如:輸入90,打印出90=2*3*3*5。程序分析:對(duì)n進(jìn)行分解質(zhì)因數(shù),應(yīng)先找到一個(gè)最小的質(zhì)數(shù)k,然后按下述步驟完成:(1)如果這個(gè)質(zhì)數(shù)恰等于n,則說明分解質(zhì)因數(shù)的過程已經(jīng)結(jié)束,打印出即可。如果nk,但n能被k整除,則應(yīng)打印出k的值,并用n除以k的商,作為新的正整數(shù)你n,重復(fù)執(zhí)行第一步。(3)如果n不能被k整除,則用k+1作為k的值,重復(fù)執(zhí)行第一步?!境绦?】題目:利用條件運(yùn)算符的嵌套來完成此題:學(xué)習(xí)成績(jī)=90分的同學(xué)用A表示,60-89分之間的用B表示,
3、60分以下的用C表示。1.程序分析:(ab)?a:b這是條件運(yùn)算符的基本例子?!境绦?】題目:輸入兩個(gè)正整數(shù)m和n,求其最大公約數(shù)和最小公倍數(shù)。1.程序分析:利用輾除法?!境绦?】題目:輸入一行字符,分別統(tǒng)計(jì)出其中英文字母、空格、數(shù)字和其它字符的個(gè)數(shù)。1.程序分析:利用while語句,條件為輸入的字符不為n.做了【程序8】題目:求s=a+aa+aaa+aaaa+aa.a的值,其中a是一個(gè)數(shù)字。例如2+22+222+2222+22222(此時(shí)共有5個(gè)數(shù)相加),幾個(gè)數(shù)相加有鍵盤控制。1.程序分析:關(guān)鍵是計(jì)算出每一項(xiàng)的值。【程序9】題目:一個(gè)數(shù)如果恰好等于它的因子之和,這個(gè)數(shù)就稱為“完數(shù)“。例如6=
4、1+2+3.編程 找出1000以內(nèi)的所有完數(shù)?!境绦?0】題目:一球從100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地時(shí),共經(jīng)過多少米?第10次反彈多高?【程序11】題目:有1、2、3、4個(gè)數(shù)字,能組成多少個(gè)互不相同且無重復(fù)數(shù)字的三位數(shù)?都是多少?1.程序分析:可填在百位、十位、個(gè)位的數(shù)字都是1、2、3、4。組成所有的排列后再去掉不滿足條件的排列?!境绦?2】題目:企業(yè)發(fā)放的獎(jiǎng)金根據(jù)利潤(rùn)提成。利潤(rùn)(I)低于或等于10萬元時(shí),獎(jiǎng)金可提10%;利潤(rùn)高于10萬元,低于20萬元時(shí),低于10萬元的部分按10%提成,高于10萬元的部分,可可提成7.5%;20萬到40萬之間時(shí),
5、高于20萬元的部 分,可提成5%;40萬到60萬之間時(shí)高于40萬元的部分,可提成3%;60萬到100萬之間時(shí),高于60萬元的部分,可 提成1.5%,高于100萬元時(shí),超過100萬元的部分按1%提成,從鍵盤輸入當(dāng)月利潤(rùn)I,求應(yīng)發(fā)放獎(jiǎng)金總數(shù)?1.程序分析:請(qǐng)利用數(shù)軸來分界,定位。注意定義時(shí)需把獎(jiǎng)金定義成長(zhǎng)整型?!境绦?3】題目:一個(gè)整數(shù),它加上100后是一個(gè)完全平方數(shù),再加上168又是一個(gè)完全平方數(shù),請(qǐng)問該數(shù)是多少?1.程序分析:在10萬以內(nèi)判斷,先將該數(shù)加上100后再開方,再將該數(shù)加上268后再開方,如果開方后的結(jié)果滿足如下條件,即是結(jié)果。請(qǐng)看具體分析:【程序14】題目:輸入某年某月某日,判斷這
6、一天是這一年的第幾天?1.程序分析:以3月5日為例,應(yīng)該先把前兩個(gè)月的加起來,然后再加上5天即本年的第幾天,特殊情況,閏年且輸入月份大于3時(shí)需考慮多加一天?!境绦?5】*題目:輸入三個(gè)整數(shù)x,y,z,請(qǐng)把這三個(gè)數(shù)由小到大輸出。1.程序分析:我們想辦法把最小的數(shù)放到x上,先將x與y進(jìn)行比較,如果xy則將x與y的值進(jìn)行交換,然后再用與z進(jìn)行比較,如果xz則將x與z的值進(jìn)行交換,這樣能使x最小?!境绦?6】題目:輸出9*9口訣。1.程序分析:分行與列考慮,共9行9列,i控制行,j控制列【程序17】題目:猴子吃桃問題:猴子第一天摘下若干個(gè)桃子,當(dāng)即吃了一半,還不癮,又多吃了一個(gè)第二天早上又將剩下的桃子
7、吃掉一半,又多吃了一個(gè)。以后每天早上都吃了前一天剩下的一半零一個(gè)。到第10天早上想再吃時(shí),見只剩下一個(gè)桃子了。求第一天共摘了多少。1.程序分析:采取逆向思維的方法,從后往前推斷?!境绦?8】題目:兩個(gè)乒乓球隊(duì)進(jìn)行比賽,各出三人。甲隊(duì)為a,b,c三人,乙隊(duì)為x,y,z三人。已抽簽決定比賽名單。有人向 隊(duì)員打聽比賽的名單。a說他不和x比,c說他不和x,z比,請(qǐng)編程序找出三隊(duì)賽手的名單。1.程序分析:判斷素?cái)?shù)的方法:用一個(gè)數(shù)分別去除2到sqrt(這個(gè)數(shù)),如果能被整除,則表明此數(shù)不是素?cái)?shù),反之是素?cái)?shù)?!境绦?9】題目:打印出如下圖案(菱形)*【程序16】*1.程序分析:先把圖形分成兩部分來看待,前四
8、行一個(gè)規(guī)律,后三行一個(gè)規(guī)律,利用雙重 行,第二層控制列?!境绦?0】題目:有一分?jǐn)?shù)序列:2/1,3/2,5/3,8/5,13/8,21/13.求出這個(gè)數(shù)列的前20項(xiàng)之和1.程序分析:請(qǐng)抓住分子與分母的變化規(guī)律?!境绦?1】題目:求1+2!+3!+.+20!的和1.程序分析:此程序只是把累加變成了累乘?!境绦?2】題目:利用遞歸方法求5!。1.程序分析:遞歸公式:fn=fn_1*4!【程序23】題目:有5個(gè)人坐在一起,問第五個(gè)人多少歲?他說比第4個(gè)人大2歲。問第4個(gè)人歲數(shù),他說比第3個(gè)人大2歲。問第三個(gè)人,又說比第2人大兩歲。問第2個(gè)人,說比第一個(gè)人大兩歲。最后問第一個(gè)人,他說是10歲。請(qǐng)問第五
9、個(gè)人多大?1.程序分析:利用遞歸的方法,遞歸分為回推和遞推兩個(gè)階段。要想知道第五個(gè)人歲數(shù),需知道第四人的歲數(shù),依次類推,推到第一人(10歲),再往回推?!境绦?4】題目:給一個(gè)不多于5位的正整數(shù),要求:一、求它是幾位數(shù),二、逆序打印出各位數(shù)字。for循環(huán),第一層控制【程序25】做完【程序31】題目:一個(gè)5位數(shù),判斷它是不是回文數(shù)。即12321是回文數(shù),個(gè)位與萬位相同,十位與千位相同【程序26】題目:請(qǐng)輸入星期幾的第一個(gè)字母來判斷一下是星期幾,如果第一個(gè)字母一樣,則繼續(xù)判斷第二個(gè)字母。1.程序分析:用情況語句比較好,如果第一個(gè)字母一樣,則判斷用情況語句或if語句判斷第二個(gè)字母。【程序27】題目:
10、求100之內(nèi)的素?cái)?shù)【程序28】題目:對(duì)10個(gè)數(shù)進(jìn)行排序1.程序分析:可以利用選擇法,即從后9個(gè)比較過程中,選擇一個(gè)最小的與第一個(gè)元素交換,下次類推,即用第二個(gè)元素與后8個(gè)進(jìn)行比較,并進(jìn)行交換。【程序29】題目:求一個(gè)3*3矩陣對(duì)角線元素之和1.程序分析:利用雙重for循環(huán)控制輸入二維數(shù)組,再將aii累加后輸出【程序30】題目:有一個(gè)已經(jīng)排好序的數(shù)組。現(xiàn)輸入一個(gè)數(shù),要求按原來的規(guī)律將它插入數(shù)組中。1.程序分析:首先判斷此數(shù)是否大于最后一個(gè)數(shù),然后再考慮插入中間的數(shù)的情況,插入后此元素之后的數(shù),依次后移一個(gè)位置。題目:將一個(gè)數(shù)組逆序輸出。1.程序分析:用第一個(gè)與最后一個(gè)交換?!境绦?2】題目:取一
11、個(gè)整數(shù)a從右端開始的47位。程序分析:可以這樣考慮:(1)先使a右移4位。設(shè)置一個(gè)低4位全為1,其余全為0的數(shù)??捎?04)(3)將上面二者進(jìn)行&運(yùn)算。【程序33】題目:打印出楊輝三角形(要求打印出10行如下圖)1.程序分析:11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 1【程序34】題目:輸入3個(gè)數(shù)a,b,c,按大小順序輸出1.程序分析:利用指針方法?!境绦?5】題目:輸入數(shù)組,最大的與第一個(gè)元素交換,最小的與最后一個(gè)元素交換,輸出數(shù)組?!境绦?6】題目:有n個(gè)整數(shù),使其前面各數(shù)順序向后移m個(gè)位置,最后m個(gè)數(shù)變成最前面的m個(gè)數(shù)【程序37】題目:有n個(gè)人圍成
12、一圈,順序排號(hào)。從第一個(gè)人開始報(bào)數(shù)(從1到3報(bào)數(shù)),凡報(bào)到3的人退出圈子,問最后留下的是原來第幾號(hào)的那位。【程序38】題目:寫一個(gè)函數(shù),求一個(gè)字符串的長(zhǎng)度,在main函數(shù)中輸入字符串,并輸出其長(zhǎng)度。【程序39】題目:編寫一個(gè)函數(shù),輸入n為偶數(shù)時(shí),調(diào)用函數(shù)求1/2+1/4+.+1/n,當(dāng)輸入n為奇數(shù)時(shí),調(diào)用函數(shù)1/1+1/3+.+1/n(利用指針函數(shù))【程序40】題目:字符串排序?!境绦?1】題目:海灘上有一堆桃子,五只猴子來分。第一只猴子把這堆桃子憑據(jù)分為五份,多了一個(gè),這只猴子把多的一個(gè)扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一個(gè),它同樣把多的一個(gè)扔入海中,拿走了一
13、份,第三、第四、第五只猴子都是這樣做的,問海灘上原來最少有多少個(gè)桃子?【程序42】題目:809*?=800*?+9*?+1其中?代表的兩位數(shù),8*?的結(jié)果為兩位數(shù),9*?的結(jié)果為3位數(shù)。求?代表的兩位數(shù),及809*?后的結(jié)果【程序43】題目:求07所能組成的奇數(shù)個(gè)數(shù)?!境绦?4】題目:一個(gè)偶數(shù)總能表示為兩個(gè)素?cái)?shù)之和【程序45】題目:判斷一個(gè)素?cái)?shù)能被幾個(gè)9整除【程序46】題目:兩個(gè)字符串連接程序做完【程序47】題目:讀取7個(gè)數(shù)(150)的整數(shù)值,每讀取一個(gè)值,程序打印出該值個(gè)數(shù)的*【程序48】題目:某個(gè)公司采用公用電話傳遞數(shù)據(jù),數(shù)據(jù)是四位的整數(shù),在傳遞過程中是加密的,加密規(guī)則如下:每位數(shù)字都加上
14、5,然后用和除以10的余數(shù)代替該數(shù)字,再將第一位和第四位交換,第二位和第三位交換。做完【程序49】題目:計(jì)算字符串中子串出現(xiàn)的次數(shù)【程序50】題目:有五個(gè)學(xué)生,每個(gè)學(xué)生有3門課的成績(jī),從鍵盤輸入以上數(shù)據(jù)(包括學(xué)生號(hào),姓名,三門課成績(jī)),計(jì)算出平均成績(jī),況原有的數(shù)【程序45】據(jù)和計(jì)算出的平均分?jǐn)?shù)存放在磁盤文件stud中?!境绦?】題目:古典問題:有一對(duì)兔子,從出生后第3個(gè)月起每個(gè)月都生一對(duì) 兔子,小兔子長(zhǎng)到第三個(gè)月后每個(gè)月又生一對(duì)兔子, 假如兔子都不死, 問每個(gè)月的兔子對(duì)數(shù)為多少?程序分析:兔子的規(guī)律為數(shù)列1,1,2,3,5,8,13,21public class Prog1public sta
15、tic void main(String args)int n二10;System.out.println(”第+n+個(gè)月兔子總數(shù)為+fun(n);private static int fun(int n)if(n=1 | n=2)return 1;elsereturn fun(n -1)+fu n(n-2);【程序2】題目:判斷101-200之間有多少個(gè)素?cái)?shù),并輸出所有素?cái)?shù)。程序分析:判斷素?cái)?shù)的方法:用一個(gè)數(shù)分別去除2到sqrt(這個(gè)數(shù)),如果能被整除,則表明此數(shù)不是素?cái)?shù),反之是素?cái)?shù)。public class Prog2public static void main(String args)
16、int m = 1;int n二1000;int count = 0;/統(tǒng)計(jì)素?cái)?shù)個(gè)數(shù)for(int i=m;in;i+)if(isPrime(i)coun t+;System.out.print(i+);if(cou nt%10=0)System.out.pri ntl n();System.out.pri ntl n();System.out.println(”在+m+和+n+cou nt+個(gè)素?cái)?shù));/判斷素?cái)?shù)private static boolean isPrime(int n)之間共有boolea n flag = true;if(n=1)flag = false;elsefor(in
17、t i=2;i=Math.sqrt(n);i+)if(n%i)=0 | n=1)flag = false;break;elseflag = true;retur n flag;【程序3】題目:打印出所有的水仙花數(shù),所謂水仙花數(shù)是指一個(gè)三位數(shù),其各位數(shù)字立方和等于該數(shù)本身。例如:153是一個(gè)水仙花數(shù),因?yàn)?53=1的三次方+5的三次方+3的三次方。程序分析:利用for循環(huán)控制100-999個(gè)數(shù),每個(gè)數(shù)分解出個(gè)位, 十位,百位。public class Prog3 public static void main(String args) for(inti=1OO;i1OOO;i+) if(isLo
18、tus(i)System.out.print(i+);System.out.pri ntl n();/判斷水仙花數(shù)private static boolean isLotus(int lotus)int m = 0;int n二lotus;int sum = 0;m = n/100;n -二m*100;sum = m*m*m;m = n/10;n -= m*10;sum += m*m*m + n*n*n;if(sum=lotus)return true;elsereturn false;【程序4】題目:將一個(gè)正整數(shù)分解質(zhì)因數(shù)。例如:輸入90,打印出90=2*3*3*5。程序分析:對(duì)n進(jìn)行分解質(zhì)
19、因數(shù),應(yīng)先找到一個(gè)最小的質(zhì)數(shù)k,然后按下述步驟完成:(1)如果這個(gè)質(zhì)數(shù)恰等于n,貝卩說明分解質(zhì)因數(shù)的過程已經(jīng)結(jié)束,打 印出即可。如果nk,但n能被k整除,則應(yīng)打印出k的值,并用n除以k的商,作為新的正整數(shù)n,重復(fù)執(zhí)行第一步。如果n不能被k整除,則用k+1作為k的值,重復(fù)執(zhí)行第一步。public class Prog4public static void main(String args)int n二13;decompose (n);private static void decomposent n)System.out.pri nt( n+=);for(int i=2;i=90分的同學(xué)用A表示
20、,60-89分之間的用B表示,60分以下的用C表示。程序分析:(ab)?a:b這是條件運(yùn)算符的基本例子。public class Prog5public static void main(String args)int n二-1;tryn = In teger.parsel nt(args0);catch(Arrayl ndexOutOfBo un dsExceptio n e)System.out.println(”請(qǐng)輸入成績(jī));return;grade (n);/成績(jī)等級(jí)計(jì)算private static void grade(int n)if(n 100 | n=90)?分,屬于A等:(n
21、60)?分,屬于B等:分,屬于C等);System.out.pri ntl n(n+str);【程序6】題目:輸入兩個(gè)正整數(shù)m和n,求其最大公約數(shù)和最小公倍數(shù)。程序分析:利用輾除法。public class Prog6public static void main(String args)int m,n;trym = In teger.parsel nt(args0);n = In teger.parseI nt(args1);catch(ArraylndexOutOfBoundsException e)System.out.println(”輸入有誤);return;max_mi n(m,n
22、);/求最大公約數(shù)和最小公倍數(shù)private static void max_m in (i nt m, i nt n)int temp = 1;int yshu = 1;int bshu = m*n;if(n m)temp = n;n二m;m = temp;while(m!=0)temp = n %m;n二m;m = temp; yshu = n; bshu /= n;System.out.println(m+和+n+的最大公約數(shù)為+yshu);System.out.println(m+和+n+的最小公倍數(shù)為+bshu);【程序7】題目:輸入一行字符,分別統(tǒng)計(jì)出其中英文字母、空格、數(shù)字和其它
23、 字符的個(gè)數(shù)。程序分析:利用while語句,條件為輸入的字符不為n.import java.util.Sca nner;public class Prog7_1public static void main(String args)System.out.pri nt(請(qǐng)輸入一串字符:);Scanner sca n二new Sca nn er(System.i n);Stri ng str = sca n.n extLi ne();將一行字符轉(zhuǎn)化為字符串sca n. close();coun t(str);/統(tǒng)計(jì)輸入的字符數(shù)private static void count(String str
24、)Stri ng E1 = u4e00-u9fa5;Stri ng E2 = a-zA-Z;Stri ng E3 = 0-9;Stri ng E4 = s;空格int coun tChi nese = 0;int coun tLetter = 0;int coun tNumber = 0;int coun tSpace = 0;int coun tOther = 0;char array_Char = str.toCharArray();將字符串轉(zhuǎn)化為字符數(shù)組Stri ngarray_Stri ng=newStri ngarray_Char.le ngth;/漢字只能作為字符串處理for(i
25、nt i=0;i list = new ArrayListvString();char array_Char = str.toCharArray();for(char c:array_Char)list.add(Stri ng.valueOf(c);/list表中Collectio ns.sort(list);/排序for(Stri ng s:list)int begi n二list.i ndexOf(s);int end = list.lastI ndexOf(s);/索引結(jié)束統(tǒng)計(jì)字符數(shù)將字符作為字符串添加到if(list.get(e nd)=s)System.out.println(”+(
26、e nd-begi n+1)+個(gè));字 符 +s+【程序8】題目:求s=a+aa+aaa+aaaa+aa.a的值,其中a是一個(gè)數(shù)字。例如2+22+222+2222+22222(此時(shí)共有5個(gè)數(shù)相加),幾個(gè)數(shù)相加有鍵盤控制。程序分析:關(guān)鍵是計(jì)算出每一項(xiàng)的值。import java.util.Sca nner;public class Prog8public static void main(String args)System.out.print(”求s=a+aa+aaa+aaaa+的值,請(qǐng)輸入a的值:);Scannerscan二newSca nn er(System.i n).useDelimi
27、ter(s*);以空格作為分隔符int a = sca n.n ext In t();int n二sca n.n ext In t();sca n. close();關(guān)閉掃描器System.out.pri ntl n(expressed(2,5)+add(2,5);/求和表達(dá)式private static String expressed(int a,int n)Stri ngBufer sb = new Strin gBuffer();Stri ngBuffer subSB = new Stri ngBuffer();for(i nt i=1;i n+1;i+)subSB = subSB.a
28、ppe nd(a);sb = sb.appe nd(subSB);if(iv n)sb = sb.appe nd(+);sb.appe nd(=);return sb.toString();/求和private static long add(int a,int n) long sum = 0;long subSUM = 0;for(i nt i=1;i n+1;i+)subSUM = subSUM*10+a; sum = sum+subSUM;return sum;【程序9】 題目:一個(gè)數(shù)如果恰好等于它的因子之和, 這個(gè)數(shù)就稱為完數(shù)。例 如6=1+2+3.編程找出1000以內(nèi)的所有完數(shù)。pu
29、blic class Prog9public static void main(String args)int n二1OOOO; compNumber( n);/求完數(shù)private static void compNumber(i nt n)int count = 0;System.out.pri ntl n(n+以內(nèi)的完數(shù):);for(i nt i=1;i n+1;i+)int sum = 0;for(i nt j=1;jvi/2+1;j+)if(i%j)=O)sum += j;if(sum=i)System.out.pri nt(i+);if(cou nt+)%5=0)System.ou
30、t.pri ntl n();h 1=2.0 ;【程序10】題目:一球從100米高度自由落下,每次落地后反跳回原高度的一 半;再落下,求它在 第10次落地時(shí),共經(jīng)過多少米?第10次反彈 多高?import java.util.Sca nner;public class Prog10public static void main(String args)System.out.pri nt(”請(qǐng)輸入小球落地時(shí)的高度和求解的次數(shù):);Scannerscan二newSca nn er(System.i n).useDelimiter(s);int h = sca n.n ext In t();int n
31、二sca n.n ext In t();sca n. close();dista nce(h ,n);/小球從h高度落下,經(jīng)n次反彈后經(jīng)過的距離和反彈的高度private static void distance(int h,int n)double len gth = 0;for(i nt i=0;i n ;i+)len gth += h;System.out.println(”經(jīng)過第+n+次反彈后,小球共經(jīng)過+length+米,+第+n+次反彈高度為+h+米”);【程序11】題目:有1、2、3、4個(gè)數(shù)字,能組成多少個(gè)互不相同且無重復(fù)數(shù)字 的三位數(shù)?都是多少?程序分析:可填在百位、十位、個(gè)位
32、的數(shù)字都是1、2、3、4。組成所有的排列后再去 掉不滿足條件的排列。public class Prog11public static void main(String args)int count = 0;int n二0;for(i nt i=1;i5;i+)for(i nt j=1;j5;j+)if(j=i)con ti nue;h 1=2.0 ;for(int k=1;k1000000)profit = profit_sub-1000000; profit_sub = 1000000;prize += profit*0.01;if(profit600000)profit = profit_
33、sub-600000;profit_sub = 600000;prize += profit*0.015;if(profit400000)profit = profit_sub-400000;profit_sub = 400000;prize += profit*0.03; if(profit200000) profit = profit_sub-200000;profit_sub = 200000;prize += prize*0.05;if(profit100000)profit = profit_sub-100000;profit_sub = 100000;prize += profit
34、*0.075;prize += profit_sub*0.1;return prize;【程序13】題目:一個(gè)整數(shù),它加上100后是一個(gè)完全平方數(shù),再加上168又是一個(gè)完全平方數(shù),請(qǐng)問該數(shù)是多少?程序分析:在10萬以內(nèi)判斷,先將該數(shù)加上100后再開方,再將該數(shù)加上268后再開方,如果開方后的結(jié)果滿足如下條件,即是結(jié)果。public class Prog13public static void main(String args)int n=0;for(int i=0;i100001;i+)if(isCompSqrt(i+100) & isCompSqrt(i+268)n二i;break;
35、System.out.pri ntln(”所求的數(shù)是:+n);/判斷完全平方數(shù)private static boolean isCompSqrt(int n)boolea n isComp = false;for(int i=1;iMath.sqrt(n)+1;i+)if(n=Math.pow(i,2)isComp = true;break;return isComp;【程序14】題目:輸入某年某月某日,判斷這一天是這一年的第幾天?程序分析:以3月5日為例,應(yīng)該先把前兩個(gè)月的加起來,然后再加上5天即本年的第幾天,特殊情況,閏年且輸入月份大于3時(shí)需考慮多加一天。import java.util.
36、Sca nner;public class Prog14public static void main(String args)Scannerscan二newSca nn er(System.i n).useDelimiter(D);匹配非數(shù)字System.out.print(”請(qǐng)輸入當(dāng)前日期(年-月-日):”);int year = sca n.n extI nt();int mon th = sca n.n extI nt();int date = sca n.n ext In t();sca n. close();System.out.println(”今天是+year+年的第+an a
37、lysis(year,m on th,date)+天);/判斷天數(shù)private static in t an alysis(i nt year, i nt mon th, int date)int n二0;in tmon th_date=newin t0,31,28,31,30,31,30,31,31,30,31,30;if(year%400)=0(year%4)=0)&( (year%100)!=0)mon th_date2 = 29;for(i nt i=0;iy則將x與y的值進(jìn)行交換,然后再用x與z進(jìn)行比較,如 果xz則將x與z的值進(jìn)行交換,這樣能使x最小。import jav
38、a.util.Sca nner;public class Prog15public static void main(String args)Scannerscan二newSca nn er(System.i n).useDelimiter(D);System.out.pri nt(請(qǐng)輸入三個(gè)數(shù):);int x = sca n.n ext In t();int y = sca n.n ext In t();int z = sca n.n ext In t();sca n. close();System.out.pri ntln(”排序結(jié)果:+sort(x,y,z);/比較兩個(gè)數(shù)的大小priva
39、te static String sort(int x,int y,int z)Stri ng s = n ull;if(xy)int t = x;x = y;y = t;if(xz)int t = x;x = z;z = t;if(yz)int t = z;z = y;y = t;s = x+y+z;return s;【程序16】題目:輸出9*9口訣。程序分析:分行與列考慮,共9行9列,i控制行,j控制列。public class Prog16public static void main(String args)for(int i=1;i10;i+)for(i nt j=1;j0;i-)m
40、 = 2*m + 2;System.out.println(”小猴子共摘了+m+桃子);10【程序18】題目?jī)蓚€(gè)乒乓球隊(duì)進(jìn)行比賽,各出三人。甲隊(duì)為a,b,c三人,乙隊(duì) 為x,y,z三人。已抽簽決定比賽名單。有人向隊(duì)員打聽比賽的名單。a說他不和x比,c說他不和x,z比,請(qǐng)編程序找出三隊(duì)賽手的名單。import java.util.ArrayList;public class Prog18Stri ng a,b,c; 甲隊(duì)成員public static void main(String args)String racer = x,y,z;乙隊(duì)成員ArrayListarrayList=newArra
41、yList();for(int i=0;i3;i+)for(i nt j=0;j3;j+)for(int k=0;k3;k+)Prog18prog18=newProg18(raceri,racerj,racerk);if(!prog18.a.equals(prog18.b)&!prog18.a.equals(prog18.c)& !prog18.b.equals(prog18.c) &!prog18.a.equals(x)& !prog18.c.equals(x) & !prog18.c.equals(z)arrayList.add(prog18);fo
42、r(Object obj:arrayList)System.out.pri ntl n(obj);/構(gòu)造方法private Prog18(String a,String b,String c)this.a = a;this.b = b ;this.c = c;public Stri ng toStri ng()return a的對(duì)手是+a+b的對(duì)手是+b+c的對(duì)手是+c;【程序19】題目打印出如下圖案(菱形)*程序分析:先把圖形分成兩部分來看待,前四行一個(gè)規(guī)律,后三行 個(gè)規(guī)律,利用雙重for循環(huán),第一層控制行,第二層控制列。public class Prog19public static vo
43、id main(String args)int n二5;prin tStar( n);/打印星星private static void printStar(int n)/打印上半部分for(i nt i=0;i n ;i+)for(i nt j=0;j2* n;j+)if(j=n-i & jv二n+i)System.out.pri nt(*);System.out.pri ntl n();/打印下半部分for(i nt i=1;i n ;i+)System.out.pri nt(” );for(i nt j=0;j2* n-i;j+)if(j=i & j2* n-i-1)Sys
44、tem.out.pri nt(*);System.out.pri ntl n();【程序20】題目:有一分?jǐn)?shù)序列:2/1,3/2,5/3,8/5,13/8,21/13求出這個(gè)數(shù)列的前20項(xiàng)之和。程序分析:請(qǐng)抓住分子與分母的變化規(guī)律。public class Prog20public static void main(String args)double n1 = 1;double n2 = 1;double fracti on二n1/n2;double Sn二0;for(int i=0;i20;i+)double t1 = n1;double t2 = n2;n1 = t1+t2;n2 = t
45、1;fracti on二n1/n2;Sn += fracti on;System.out.pri nt(S n);【程序21】題目:求1+2!+3!+20!的和程序分析:此程序只是把累加變成了累乘public class Prog21public static void main(String args)long sum = 0;for(int i=0;i20;i+)sum += factorial(i+1);System.out.pri ntln( sum);/階乘private static long factorial(int n)int mult = 1;for(i nt i=1;i
46、n+1;i+)mult *= i;return mult;【程序22】題目:利用遞歸方法求5!。程序分析:遞歸公式:fn=fn_1*4!public class Prog22public static void main(String args)System.out.pri ntl n(fact(10);/遞歸求階乘private static long fact(int n)if(n二=1)return 1;elsereturn fact( n-1)* n;【程序23】題目:有5個(gè)人坐在一起,問第五個(gè)人多少歲?他說比第4個(gè)人大2歲。問第4個(gè)人歲數(shù),他說比第3個(gè)人大2歲。問第三個(gè)人,又說 比第
47、2人大兩歲。問第2個(gè)人,說比第一個(gè)人大兩歲。最后問第一 個(gè)人,他說是10歲。請(qǐng)問第五個(gè)人多大?程序分析:利用遞歸的方法,遞歸分為回推和遞推兩個(gè)階段。要想知 道第五個(gè)人歲數(shù),需知道第四人的歲數(shù),依次類推,推到第一人(10歲),再往回推。public class Prog23public static void main(String args)System.out.pri ntln( getAge(5,2);/求第m位同志的年齡private static int getAge(int m,int n)if(m=1)return 10;System.out.pri nt(aj+);elseret
48、ur n getAge(m-1, n)+n;【程序24】題目:給一個(gè)不多于5位的正整數(shù),要求:一、求它是幾位數(shù),二、 逆序打印出各位數(shù)字。public class Prog24public static void main(String args)int n = In teger.parsel nt(args0);int i = 0;in t a = new in t5;doai = n %10;n /= 10;+i;while( n!=0);System.out.print(這是一個(gè)+i+位數(shù),從個(gè)位起,各位數(shù)字依次為:);e.pri ntStackTrace();for(i nt j=O;
49、ji;j+)【程序25】題目:一個(gè)5位數(shù),判斷它是不是回文數(shù)。即12321是回文數(shù),個(gè) 位與萬位相同,十位與千位相同。import java.io.*;public class Prog25public static void main(String args)int n二0;System.out.print(請(qǐng)輸入一個(gè)5位數(shù):);BufferedReaderbufi n二new BufferedReader( newIn putStreamReader(System.i n);tryn二In teger.parse In t(bufi n.readL in e();catch(IOExcep
50、tio n e)e.pri ntStackTrace();fin allytrybufi n.close();catch(IOExceptio n e)e.pri ntStackTrace();pali n(n);private static void palin(int n)int m = n;in t a = new in t5;if(n 99999)System.out.pr intln(” return;elsefor(int i=0;i5;i+)ai = n %10;n /= 10;if(a0=a4 & a1=a3)System.out.pri ntln (m+elseSys
51、tem.out.pri ntln (m+ 【程序26】題目:請(qǐng)輸入星期幾的第一個(gè)字母來判斷一下是星期幾,如果第一個(gè)輸入的不是5位數(shù)!);是一個(gè)回文數(shù));不是回文數(shù));字母一樣,則繼續(xù)判斷第二個(gè)字母。程序分析:用情況語句比較好,如果第一個(gè)字母一樣,則判斷用情況 語句或if語句判斷第二個(gè)字母。import java.io.*;public class Prog26public static void main(String args)Stri ng str = new Stri ng();BufferedReader bufl n二newBufferedReader( newIn putStreamReader(System.i n);System.out.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東科學(xué)技術(shù)職業(yè)學(xué)院《中學(xué)政治學(xué)科教學(xué)法與微格實(shí)訓(xùn)》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東金融學(xué)院《體育場(chǎng)館智能化運(yùn)營(yíng)》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東工業(yè)大學(xué)《路面工程》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東工程職業(yè)技術(shù)學(xué)院《NoSQL數(shù)據(jù)庫系統(tǒng)》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東創(chuàng)新科技職業(yè)學(xué)院《園林設(shè)計(jì)初步Ⅱ》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東財(cái)經(jīng)大學(xué)《醫(yī)學(xué)課程》2023-2024學(xué)年第一學(xué)期期末試卷
- 小學(xué)生計(jì)算能力提升課件
- 廣東財(cái)經(jīng)大學(xué)《高級(jí)通信系統(tǒng)》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東白云學(xué)院《素描人體》2023-2024學(xué)年第一學(xué)期期末試卷
- 贛州職業(yè)技術(shù)學(xué)院《餐飲運(yùn)營(yíng)管理1(菜肴酒水)》2023-2024學(xué)年第一學(xué)期期末試卷
- 山東省濟(jì)南市2023-2024學(xué)年高三上學(xué)期期末學(xué)習(xí)質(zhì)量檢測(cè)物理試題(解析版)
- 國(guó)家開放大學(xué)電大本科《古代小說戲曲專題》2025期末試題及答案(試卷號(hào):1340)
- 粵教粵科版三年級(jí)科學(xué)上冊(cè)全冊(cè)單元期中期末測(cè)試卷 含答案
- 遼寧省大連市甘井子區(qū)2023-2024學(xué)年五年級(jí)上學(xué)期期末英語試卷
- (完整版)年產(chǎn)30萬噸甲醇工藝設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 浙江省湖州市2022-2023學(xué)年四年級(jí)上學(xué)期數(shù)學(xué)期末試卷(含答案)
- 外研版五年級(jí)上冊(cè)(三起)連詞成句專項(xiàng)訓(xùn)練
- 養(yǎng)老機(jī)構(gòu)風(fēng)險(xiǎn)管控清單
- 辦公室消防管理制度
- 建井施工方案
- YMO青少年數(shù)學(xué)思維28屆五年級(jí)全國(guó)總決賽試卷
評(píng)論
0/150
提交評(píng)論