java经典编程题(java递归排序算法)
其实java经典编程题的问题并不复杂,但是又很多的朋友都不太了解java递归排序算法,因此呢,今天小编就来为大家分享java经典编程题的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!
java的经典例题
【程序1】题目:古典问题:有一对兔子,从出生后第2个月起每个月都生一对兔子,小兔子长到第2个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
【程序2】题目:判断101-200之间有多少个素数,并输出所有素数。
【程序3】题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。
【程序4】题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
【程序5】题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
【程序6】题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
【程序7】题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
【程序8】题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制。
【程序9】题目:一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程找出1000以内的所有完数。
【程序10】题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
【程序11】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
【程序12】题目:企业发放的奖金根据利润提成。
利润(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%提成,
从键盘输入当月利润I,求应发放奖金总数?
【程序13】题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
【程序14】题目:输入某年某月某日,判断这一天是这一年的第几天?
【程序15】题目:输入三个整数x,y,z,请把这三个数由小到大输出。
【程序16】题目:输出9*9口诀。
【程序17】题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
【程序18】题目:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。
【程序19】题目:打印出如下图案(菱形)
【程序20】题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。 1.程序分析:请抓住分子与分母的变化规律。
【程序21】题目:求1+2!+3!+...+20!的和
【程序22】题目:利用递归方法求5!。
java新手编程题目
思路如下:
随即4个数字(1~6)用来模拟4个色子
数字全部存入数组ary,.然后升序排列.
如果满足两两相等,那么已经排序好的数字,就是ary[0]=ary[1]; ary[2]=ary[3];
然后判断ary[0]+ary[2]==6.如果等于6那么满足要求,不等于6,那么继续下次循环
参考代码
importjava.util.Arrays;
publicclassRandomDemo{
publicstaticvoidmain(String[]args){
intloop=5;//重复5次试验
for(intk=0;k<loop;k++){
inttimes=0;//循环的次数
int[]ary;//数组,存储4个随机数
while(true){
times++;//次数+1
ary=newint[4];
for(inti=0;i<ary.length;i++){
ary[i]=getNum();//添加随机数
}
Arrays.sort(ary);//用数组工具类进行排序
//因为有两两相等的情况,那么就是ary[0]=ary[1]ary[2]=ary[3]能减少很多的ifelse判断
//如果两两相等.且两值和等于6,那么跳出循环
if(ary[0]==ary[1]&&ary[2]==ary[3]&&ary[0]+ary[2]==6){
break;//跳出
}
}
System.out.println("两个数字分别是"+ary[0]+"和"+ary[2]+"\t"+"循环了"+times+"次");
}
}
//该方法用于返回一个[1,6]之间的数字
privatestaticintgetNum(){
return(int)(Math.random()*6)+1;//1~6之间的随即数
}
}测试结果
两个数字分别是1和5循环了22次
两个数字分别是1和5循环了12次
两个数字分别是3和3循环了105次
两个数字分别是1和5循环了128次
两个数字分别是2和4循环了96次
一道Java编程题,求各位大神,告知我该怎么写
分别用了普通的直接main方法和构造方法产生实例来实现,原理是一样的。
packagejavaexc;
publicclassScore{
publicstaticvoidmain(String[]args){
//定义存储分数数组
intscore[][]=newint[20][5];
//总分
intsumscore=0;
//存储总分的一维数组
intsumscores[]=newint[20];
//平均分
intavescore=0;
System.out.print("coreC++\t"+"coreJava\t"+"Servlet\t\t"+"JSP\t\t"+"EJB\t\t"+"sumscores");
System.out.println();
for(inti=0;i<20;i++){
for(intj=0;j<5;j++){
//用双层循环给数组赋值,random是产生0~1之间的小数,不包括0和1,乘100再加1就是1~101,向下取整数,正好是1到100
score[i][j]=(int)Math.floor(100*Math.random()+1);
System.out.print(score[i][j]+"\t\t");
//总分累加,在行数相同时
sumscore+=score[i][j];
//把总分赋给存储数组
sumscores[i]=sumscore;
//求平均分,就是竖列相同时,累加,这里取的是j=0,c++课程的平均成绩
if(j==0)
avescore+=score[i][j];
}
System.out.print(sumscores[i]);
//这里要把sumscore清零,再次进入循环时不会加前一行的分数
sumscore=0;
System.out.println();
}
System.out.println("平均分:\t"+avescore);
}
}
packagejavaexc;
publicclassScoreTest{
intscore[][]=newint[20][5];
intsumscore=0;
intsumscores[]=newint[20];
intavescore=0;
//构造方法。
publicScoreTest(){}
//给二维数组赋值并且打印的方法
publicvoidprintscore(){
for(inti=0;i<20;i++){
for(intj=0;j<5;j++){
score[i][j]=(int)Math.floor(100*Math.random()+1);
System.out.print(score[i][j]+"\t\t");
}
System.out.println();
}
}
//求总成绩的方法
publicvoidSumscore(){
System.out.println("总分:");
for(inti=0;i<20;i++){
for(intj=0;j<5;j++){
sumscore+=score[i][j];
sumscores[i]=sumscore;
}
System.out.print(sumscores[i]);
sumscore=0;
System.out.println();
}
}
//求平均成绩的方法,这里带了参数n,n=0,1,2,3,4分别表示不同课程。
publicvoidAvescore(intn){
for(inti=0;i<20;i++){
for(intj=0;j<5;j++){
if(j==n)
avescore+=score[i][j];
}
}
System.out.println("平均分:\t"+avescore);
}
publicstaticvoidmain(String[]args){
//用构造方法产生实例ST
ScoreTestST=newScoreTest();
System.out.print("coreC++\t"+"coreJava\t"+"Servlet\t\t"+"JSP\t\t"+"EJB");
System.out.println();
//ST分别调用赋值,求总成绩,求平均成绩的方法。
ST.printscore();
ST.Sumscore();
ST.Avescore(3);
}
}
java经典编程题的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java递归排序算法、java经典编程题的信息别忘了在本站进行查找哦。