您的位置:首页 > 编程语言 > Java开发

java练习题

2013-12-20 20:12 120 查看
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项之和。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java