Java经典算法编程题目.docx
- 文档编号:11329345
- 上传时间:2023-02-27
- 格式:DOCX
- 页数:12
- 大小:52.61KB
Java经典算法编程题目.docx
《Java经典算法编程题目.docx》由会员分享,可在线阅读,更多相关《Java经典算法编程题目.docx(12页珍藏版)》请在冰豆网上搜索。
Java经典算法编程题目
日志
返回日志列表
Java经典算法编程题目,适合面试前进行练习2013-8-3111:
43阅读(18)
∙赞
∙评论
∙转载
(1)
∙分享
(2)
∙复制地址
∙举报
∙更多
上一篇|下一篇:
学员阶段学习总结...
开通黄钻
Java经典算法编程题目,适合面试前进行练习
1.定义一个int型的一维数组,包含10个元素,分别赋一些随机整数,然后求出所有元素的最大值,
最小值,平均值,和值,并输出出来。
classArrayNumber{
publicstaticvoidmain(String[]args){
int[]arrayNumber;
arrayNumber=newint[10];
System.out.println(“以下是随机的10个整数:
”);
//填入随机的10个整数
for(inti=0;i arrayNumber[i]=(int)(100*Math.random()); System.out.print(arrayNumber[i]+”“); } System.out.println(); intmax=arrayNumber[0]; intmin=arrayNumber[0]; intsum=0; for(inti=0;i if(max max=arrayNumber[i];//求最大值 if(min>arrayNumber[i]) min=arrayNumber[i];//求最小值 sum+=arrayNumber[i]; } System.out.println(“其中Max=”+max+”,Min=”+min+”,Sum=”+sum+”,Avg=”+sum/10.0); } } 2.定义一个int型的一维数组,包含10个元素,分别赋值为1~10,然后将数组中的元素都向前移一个位置, 即,a[0]=a[1],a[1]=a[2],…最后一个元素的值是原来第一个元素的值,然后输出这个数组。 3.定义一个int型的一维数组,包含40个元素,用来存储每个学员的成绩,循环产生40个0~100之间的随机整数, 将它们存储到一维数组中,然后统计成绩低于平均分的学员的人数,并输出出来。 4.(选做)承上题,将这40个成绩按照从高到低的顺序输出出来。 5,(选做)编写程序,将一个数组中的元素倒排过来。 例如原数组为1,2,3,4,5;则倒排后数组中的值 为5,4,3,2,1。 6,要求定义一个int型数组a,包含100个元素,保存100个随机的4位数。 再定义一个 int型数组b,包含10个元素。 统计a数组中的元素对10求余等于0的个数,保存 到b[0]中;对10求余等于1的个数,保存到b[1]中,……依此类推。 classRemain{ publicstaticvoidmain(String[]args){ int[]a=newint[100]; //保存100个随机4位数到a中 for(inti=0;i a[i]=(int)(1000*Math.random()); } //统计a数组中的元素对10求余的各个的数目 int[]b=newint[10]; intk,sum; for(intj=0;j for(k=0,sum=0;k if((a[k]%10)==j)sum++; } b[j]=sum; System.out.printf(“b[%d]=%d\n”,j,b[j]); } } } 7,定义一个20*5的二维数组,用来存储某班级20位学员的5门课的成绩;这5门课 按存储顺序依次为: coreC++,coreJava,Servlet,JSP和EJB。 (1)循环给二维数组的每一个元素赋0~100之间的随机整数。 (2)按照列表的方式输出这些学员的每门课程的成绩。 (3)要求编写程序求每个学员的总分,将其保留在另外一个一维数组中。 (4)要求编写程序求所有学员的某门课程的平均分。 classStudent{ publicstaticvoidmain(String[]args){ int[][]mark=newint[20][5]; //给学生赋分数值,随机生成 for(inti=0;) } }//未完成 8,完成九宫格程序 在井字形的格局中(只能是奇数格局),放入数字(数字由),使每行每列以及斜角线的和都相等 经验规则: 从1开始按顺序逐个填写;1放在第一行的中间位置;下一个数往右上角45度处填写; 如果单边越界则按头尾相接地填;如果有填写冲突,则填到刚才位置的底下一格; 如果有两边越界,则填到刚才位置的底下一格。 个人认为,可以先把最中间的数填到九宫格的最中间位置;再按上面的规则逐个填写,而且 填的时候还可以把头尾对应的数填到对应的格子中。 (第n个值跟倒数第n个值对应,格局上以最中 间格为轴心对应) 这样就可以同时填两个数,效率比之前更高;其正确性有待数学论证(但多次实验之后都没发现有错)。 九宫格的1至少还可以填在另外的三个位置,只是接下来的填写顺序需要相应改变; 再根据九宫格的对称性,至少可以有8种不同的填写方式 importjava.util.Scanner; classNinePalace{ publicstaticvoidmain(String[]args){ //定义N为九宫格的行列数,需要输入 System.out.println(“请输入九宫格的行列规模(只能是奇数的)”); Scannern=newScanner(System.in); intN; //判断格局是否奇数(可判断出偶数、负数及小数) doubled; while(true){ d=n.nextDouble(); N=(int)d; if((d-N)>1.0E-4||N%2==0||N<0) {System.out.println(“输入出错,格局只能是正奇数。 请重新输入”);} elsebreak; } //老师的九宫格填写方法 int[][]result=newint[N][N];//定义保存九宫格的数组 introw=0;//行初始位置 intcol=N/2;//列初始位置,因为列由0开始,故N/2是中间位置 for(inti=1;i<=N*N;i++){ result[row][col]=i; row–; col++; if(row<0&&col>=N){col–;row+=2;}//行列都越界 elseif(row<0){row=N-1;}//行越界 elseif(col>=N){col=0;}//列越界 elseif(result[row][col]! =0){col–;row+=2;}//有冲突 } //打印出九宫格 for(inti=0;i for(intj=0;j System.out.println(); } //我个人的填格方式 int[][]result2=newint[N][N];//为免冲突,重新new一个数组 result2[N/2][N/2]=(N*N+1)/2;//先把中间值赋予中间位置 row=0;//定义行及列的初始赋值位置。 之前赋值的for对两个值有影响,故需重新定位 col=N/2; for(inti=1;i<=N*N/2;i++){ result2[row][col]=i; //下面这句是把跟i对应的值放到格局对应的位置上 result2[N-row-1][N-col-1]=N*N+1-i; row–; col++; if(row<0){row=N-1;}//行越界 elseif(col>=N){col=0;}//列越界 elseif(result2[row][col]! =0){col–;row+=2;}//有冲突 //这方法不可能出现行列两边都越界的情况,详情需要数学论证 } System.out.println(); //再次打印出九宫格,以对比验证 for(inti=0;i for(intj=0;j System.out.println(); } } } 9,求一个3*3矩阵对角线元素之和 10,打印杨辉三角 11.约梭芬杀人法 把犯人围成一圈,每次从固定位置开始算起,杀掉第7个人,直到剩下最后一个。 11_2、用数组实现约瑟夫出圈问题。 n个人排成一圈,从第一个人开始报数,从1开始报,报到m的人出圈,剩下的人继续开始从1报数,直到所有的人都出圈为止。 对于给定的n,m,求出所有人的出圈顺序。 12.判断随机整数是否是素数 产生100个0-999之间的随机整数,然后判断这100个随机整数哪些是素数,哪些不是? publicclassPrimeTest{ publicstaticvoidmain(Stringargs[]){ for(inti=0;i<100;i++){ intnum=(int)(Math.random()*1000); PrimeTestt=newPrimeTest(); if(t.isPrime(num)){ System.out.println(num+”是素数! ”); }else{ System.out.println(num+”不是素数! ”); } System.out.println(); } } publicbooleanisPrime(intnum){ for(inti=2;i<=num/2;i++){ if(num%i==0){ System.out.println(num+”第一个被”+i+”整除! ”); returnfalse; } } returntrue; } } 冒泡排序法: //按从大到小的排序 inttmp=a[0];
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 经典 算法 编程 题目