java練習題

1、給定3個數,求出3個數字中的最大值。
2、編寫Java程序,求13+23+33+43+...+973+983+993+1003的和
3、編寫Java程序,求13-23+33-43+...+973-983+993-1003的值
4、求反序數:反序數就是將整數倒過來的整數,如整數12345,倒過來是54321。需求:求任何給定的整數的反序數。
5、水仙花數:是指一個三位或以上的數字,它的每個位上的數字的n次冪之和等於它本身。例如:153=1*1*1+5*5*5+3*3*3
   需求1:判斷用戶輸入的三位數是不是水仙花數
   需求2:求100-1000之間的水仙花數。
6、判斷101-200之間有多少個素數,並輸出所有素數。
   程序分析:判斷素數的方法:用一個數分別去除2到sqrt(這個數),如果能被整除,則表明此數不是素數,反之是素數。
7、將一個正整數分解質因數。例如:輸入90,打印出90=2*3*3*5。
   程序分析:對n進行分解質因數,應先找到一個最小的質數k,然後按下述步驟完成:
    (1)如果這個質數恰等於n,則說明分解質因數的過程已經結束,打印出即可。
    (2)如果n<>k,但n能被k整除,則應打印出k的值,並用n除以k的商,作爲新的正整數n,重複執行第二步。
    (3)如果n不能被k整除,則用k+1作爲k的值,重複執行第二步。
8、利用條件運算符的嵌套來完成此題:學習成績>=90分的同學用A表示,60-89分之間的用B表示,60分以下的用C表示。


9、輸出9*9口訣。程序分析:分行與列考慮,共9行9列,i控制行,j控制列。
10、打印任意行數的等腰三角形:程序分析:外層循環控制行,內層循環控制列,列又分爲兩部分空格和*的個數,空格數爲:總行數-當前行(行數從1開始);
    *個數爲:2*當前行-1
11、打印任意行數的菱形。程序分析:可以分爲兩部分上半部分是一個正立的三角形,下半部分是一個倒立的三角形(比正立三角形少一行)。
12、打印空心菱形。程序分析:在實心菱形的基礎上,把中間的*號換成空格
13、打印平行四邊形。


14、一球從100米高度自由落下,每次落地後反跳回原高度的一半;再落下,求它在 第10次落地時,共經過多少米?第10次反彈多高?
15、企業發放的獎金根據利潤提成。利潤(I)低於或等於10萬元時,獎金可提10%;利潤高於10萬元,低於20萬元時,低於10萬元的部分按10%提成,
    高於10萬元的部分,可可提成7.5%;20萬到40萬之間時,高於20萬元的部分,可提成5%;40萬到60萬之間時高於40萬元的部分,可提成3%;
    60萬到100萬之間時,高於60萬元的部分,可提成1.5%,高於100萬元時,超過100萬元的部分按1%提成,求應發放獎金總數? 
16、猴子吃桃問題:猴子第一天摘下若干個桃子,當即吃了一半,還不癮,又多吃了一個 第二天早上又將剩下的桃子吃掉一半,又多吃了一個。
    以後每天早上都吃了前一天剩下的一半零一個。到第10天早上想再吃時,見只剩下一個桃子了。求第一天共摘了多少。 
17、古典問題:有一對兔子,從出生後第3個月起每個月都生一對兔子,小兔子長到第三個月後每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數爲多少?
    程序分析: 兔子的規律爲數列1,1,2,3,5,8,13,21.... 
18、古典問題:《張邱建算經》中提出一個問題:今有雞翁一,值錢伍;雞母一,值錢三;雞雉三,值錢一。凡百錢買雞百隻,問雞翁、母、雉各幾何?
19、一個數如果恰好等於它的因子之和,這個數就稱爲"完數"。例如6=1+2+3.編程找出1000以內的所有完數。
20、一個整數,它加上100後是一個完全平方數,再加上200又是一個完全平方數,請問該數是多少?


21、給一個不多於5位的正整數,要求:一、求它是幾位數,二、逆序打印出各位數字。(使用數組實現)
22、求一組數中的最大、最小、和、平均值
23、在數組中查找數:在數組中查找某個數,給出是否找到的信息。如果找到了,要求輸出該數在數組中所處的位置;如果找不到,輸出“沒有找到!”。
24、打印出楊輝三角形(要求打印出10行如下圖)
        1 
       1 1 
      1 2 1 
     1 3 3 1 
    1 4 6 4 1 
   1 5 10 10 5 1 
25、數組逆序。定義一個包含10個元素的一維數組,然後把數組中的元素前後順序對調,並把調整順序後的數組元素進行輸出以檢驗結果是否正確。


26、使用冒泡排序對10個整數進行排序。
    冒泡排序:這是最原始,也是衆所周知的最慢的算法了。他的名字的由來因爲它的工作看來象是冒泡:冒泡排序是這樣實現的:
  首先將所有待排序的數字放入工作列表中。
  從列表的第一個數字到倒數第二個數字,逐個檢查:若某一位上的數字大於他的下一位,則將它與它的下一位交換。
  重複2號步驟,直至再也不能交換。
  冒泡排序的平均時間複雜度與插入排序相同,也是平方級的,但也是非常容易實現的算法。
27、使用交換排序對10個整數進行排序。交換法的程序最清晰簡單,每次用當前的元素一一的同其後的元素比較並交換。
28、使用順序查找從一組數中查找一個數。順序查找,從表中最後一個記錄開始,逐個進行記錄的關鍵字和給定值的比較,
    若某個關鍵字和給定值比較相等,則查找成功;若直到第一記錄其關鍵字和給定值比較都不相等,則表明表中沒有所查記錄,查找失敗。
    對於有n個記錄的表,在等概率情況下順序查找的平均查找長度爲 (n+1)/2
29、使用順序查找從一組數中查找一個數。折半查找。也叫二分查找,要求查找表爲有序表。low和high表示查找範圍的下界和上界,mid= (low+high)/2 向下取整
                 設查找關鍵字爲key,
                 1)當key<mid,則high=mid-1,重新計算mid
                 2)當key>mid,  則low=mid+1,重新計算mid
                 3)當key==mid,查找成功
                 4)當low>high,查找失敗
    查找不成功時,查找次數爲 log2 n,下取整+1;平均查找長度爲log2 (n+1) -1
30、有300個小孩圍成一圈,順序排號。從第一個人開始報數(從1到3報數),凡報到3的人退出圈子,問最後留下的是原來第幾號的那位。



31、輸入兩個正整數m和n,求其最大公約數和最小公倍數。
32、求s=a+aa+aaa+aaaa+aa...a的值,其中a是一個數字。例如2+22+222+2222+22222(此時共有5個數相加)
33、有1、2、3、4個數字,能組成多少個互不相同且無重複數字的三位數?都是多少?
34、輸入某年某月某日,判斷這一天是這一年的第幾天?
35、有一分數序列:2/1,3/2,5/3,8/5,13/8,21/13...求出這個數列的前20項之和。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章