的可能public class Gedebahe public static void mainString args int num Integer.parseIntargs0 ifnumlt6 System.out.printlnquot参数错误quot return ifnum20 System.out.printlnquot参数错误quot return Gedebahe g new Gedebahe //1 不是质数2 是偶数因此从 3 开始循环 forint i3iltnum/2i ifi20//如果为偶数退出本次循环 continue //当 i 与 num-i 都为质数时满足条件打印 ifg.isPrimei ampamp g.isPrimenum-i System.out.printlniquot quotnum-iquot quotnum 第 4 章 数组1. 定义一个 int 型的一维数组,包含 10 个元素,分别赋一些随机整数,然后求出所有元素的最大值,最小值,平均值,和值,并输出出来。
class ArrayNumber public static void mainString args int arrayNumber arrayNumber new int10 System.out.printlnquot以下是随机的 10 个整数:quot // 填入随机的 10 个整数 for int i 0 iltarrayNumber.length i arrayNumberi int100Math.random System.out.printarrayNumberiquot quot System.out.println int max arrayNumber0 int min arrayNumber0 int sum 0 for int i 0 iltarrayNumber.length i ifmax lt arrayNumberi max arrayNumberi //求最大值 ifmin gt arrayNumberi min arrayNumberi //求最小值 sum arrayNumberi System.out.printlnquot其中 MaxquotmaxquotMinquotminquotSumquotsumquotAvgquotsum/10.0 2.定义一个 int 型的一维数组,包含 10 个元素,分别赋值为 110, 然后将数组中的元素都向前移一个位置,即,a0a1a1a2…最后一个元素的值是原来第一个元素的值,然后输出这个数组。
3. 定义一个 int 型的一维数组,包含 40 个元素,用来存储每个学员的成绩,循环产生 40 个0100 之间的随机整数,将它们存储到一维数组中,然后统计成绩低于平均分的学员的人数,并输出出来。
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 的个数,保存 到 b0中;对 10 求余等于 1 的个数,保存到 b1中,……依此类推。
class Remain public static void main String args int a new int100 //保存 100 个随机 4 位数到 a 中 for int i 0 i lt a.length i ai int 1000Math.random //统计 a 数组中的元素对 10 求余的各个的数目 int b new int10 int ksum for int j 0 j lt b.length j for k0sum0 k lt a.length k if ak10j sum bj sum System.out.printfquotbddnquotjbj 7定义一个 205 的二维数组,用来存储某班级 20 位学员的 5 门课的成绩;这 5 门课 按存储顺序依次为:core C,coreJava,Servlet,
JSP 和 EJB。
(1)循环给二维数组的每一个元素赋 0100 之间的随机整数。
(2)按照列表的方式输出这些学员的每门课程的成绩。
(3)要求编写程序求每个学员的总分,将其保留在另外一个一维数组中。
(4)要求编写程序求所有学员的某门课程的平均分。
class Student public static void mainString args int mark new int205 // 给学生赋分数值,随机生成 for int i 0 //未完成8完成九宫格程序 在井字形的格局中只能是奇数格局,放入数字数字由,使每行每列以及斜角线的和都相等 经验规则:从 1 开始按顺序逐个填写; 1 放在第一行的中间位置;下一个数往右上角 45 度处填写; 如果单边越界则按头尾相接地填;如果有填写冲突,则填到刚才位置的底下一格; 如果有两边越界,则填到刚才位置的底下一格。
个人认为,可以先把最中间的数填到九宫格的最中间位置;再按上面的规则逐个填写,而且 填的时候还可以把头尾对应的数填到对应的格子中。
第 n 个值跟倒数第 n 个值对应,格局上以最中 间格为轴心对应 这样就可以同时填两个数,效率比之前更高;其正确性有待数学论证但多次实验之后都没发现有错。
九宫格的 1 至少还可以填在另外的三个位置,只是接下来的填写顺序需要相应改变; 再根据九宫格的对称性,至少可以有 8 种不同的填写方式import java.util.Scannerclass NinePalace public static void mainString args // 定义 N 为九宫格的行列数,需要输入 System.out.printlnquot请输入九宫格的行列规模只能是奇数的quot Scanner n new ScannerSystem.in int N //判断格局是否奇数 (可判断出偶数、负数 及小数) double d while true d n.nextDouble N intd if d-Ngt1.0E-4N20Nlt0 System.out.printlnquot输入出错格局只能是正奇数。
请重新输入quot else break //老师的九宫格填写方法 int result new intNN //定义保存九宫格的数组 int row 0 //行 初始位置 int col N/2 //列 初始位置因为列由 0 开始,故 N/2 是中间位置 for int i1 iltNN i result rowcol i row-- col if rowlt0ampampcolgtNcol--row2 //行列都越界 else if rowlt0 row N-1 //行越界 else if colgtNcol 0 //列越界 else if resultrowcol 0col--row2 //有冲突 //打印出九宫格 for int i0 iltN i forint j0 jltN jSystem.out.printresultijquottquot System.out.println //我个人的填格方式 int result2 new intNN //为免冲突,重新 new 一个数组 result2N/2N/2 NN1/2 //先把中间值赋予中间位置 row 0 //定义行及列的初始赋值位置。
之前赋值的 for 对两个值有影响,故需重新定位 col N/2 for int i1 iltNN/2 i result2rowcol i //下面这句是把跟 i 对应的值放到格局对应的位置上 result2N-row-1N-col-1 NN1-i row-- col if rowlt0 row N-1 //行越界 else if colgtNcol 0 //列越界 else if result2rowcol 0col--row2 //有冲突 //这方法不可能出现行列两边都越界的情况详情需要数学论证 System.out.println //再次打印出九宫格,以对比验证 for int i0 iltN i forint j0 jltN jSystem.out.printresult2ijquottquot System.out.println 9求一个 33 矩阵对角线元素之和10打印杨辉三角11. 约梭芬杀人法 把犯人围成一圈,每次从固定位置开始算起,杀掉第 7 个人,直到剩下最后一个。
11_2、用数组实现约瑟夫出圈问题。
n 个人排成一圈,从第一个人开始报数,从 1 开始报, 剩下的人继续开始从 1 报数,报到 m 的人出圈, 直到所有的人都出圈为止。
对于给定的 nm,求出所有人的出圈顺序。
12. 判断随机整数是否是素数产生 100 个 0-999 之间的随机整数,然后判断这 100 个随机整数哪些是素数,哪些不是?public class PrimeTest public static void mainString args forint i0ilt100i int num intMath.random1000 PrimeTest t new PrimeTest ift.isPrimenum System.out.printlnnumquot 是素数quot else System.out.printlnnumquot 不是素数quot System.out.println public boolean isPrimeint num forint i2iltnum/2i ifnumi0 Sys.
上一篇:
Spring学习笔记(马士兵spring视频笔记)
下一篇:
本科生毕业论文参考文献