//素数:如果除了1和它本身以外,不能被其他正整数整除,就叫素数。// 分析// ⚫ 101-200之间的数据可以采用循环依次拿到; 每拿到一个数,判断该数是否是素数。// ⚫ 判断规则是:从2开始遍历到该数的一半的数据,看是否有数据可以整除它,有则不是素数,没有则是素数。publicclassTest2{publicstaticvoidmain(String[] args){for(int i =101; i <=200; i++){//信号位:标记boolean flag =true;//一开始认为当前数据是素数for(int j =2; j < i/2; j++){if(i % j ==0){
flag =false;break;}}if(flag){System.out.print(i +"\t");}}}}
开发验证码
importjava.util.Random;//需求:// ⚫ 定义方法实现随机产生一个5位的验证码,每位可能是数字、大写字母、小写字母。// 分析:// ① 定义一个方法,生成验证码返回:方法参数是位数、方法的返回值类型是String。// ② 在方法内部使用for循环生成指定位数的随机字符,并连接起来。// ③ 把连接好的随机字符作为一组验证码进行返回。publicclassTest3{publicstaticvoidmain(String[] args){//4.调用获取验证码的方法得到一个随机的验证码String code =createCode(5);System.out.println("随机验证码:"+ code);}//1.定义一个方法返回随机验证码:是否需要返回值类型声明?String 是否需要声明形参: int npublicstaticStringcreateCode(int n){//3.定义一个字符串变量记录生成的随机字符String code ="";Random r =newRandom();//2.定义一个for循环,循环n次,依次生成随机字符for(int i =0; i < n; i++){//3.生成一个随机字符:英文大写 小写 数字int type = r.nextInt(3);//0 1 2switch(type){case0:{//大写字符(A 65 - Z 65+25)(0 - 25)+65char ch =(char)(r.nextInt(26)+65);
code += ch;break;}case1:{//小写字符(a 97 - z 97+25)(0 - 25)+97char ch1 =(char)(r.nextInt(26)+97);
code += ch1;break;}case2:{//数字字符
code += r.nextInt(10);//0-9break;}}}return code;}}
数组元素的复制
//数组复制publicclassTest4{publicstaticvoidmain(String[] args){int[] arr1 ={11,22,33,44};//int[] arr2 = arr1;//没有完成数组复制int[] arr2 =newint[arr1.length];copy(arr1,arr2);printArray(arr1);printArray(arr2);}publicstaticvoidprintArray(int[] arr){System.out.print("[");for(int i =0; i < arr.length; i++){System.out.print(i == arr.length-1? arr[i]: arr[i]+", ");}System.out.println("]");}publicstaticvoidcopy(int[] arr1,int[] arr2){//正式完成元素的复制for(int i =0; i < arr1.length; i++){
arr2[i]= arr1[i];}}}
评委打分
importjava.util.Scanner;//需求 :// 在唱歌比赛中,有6名评委给选手打分,分数范围是[0 - 100]之间的整数。选手的最后得分为:去掉最// 高分、最低分后的4个评委的平均分,请完成上述过程并计算出选手的得分。publicclassTest5{publicstaticvoidmain(String[] args){//1.定义一个动态初始化的数组,用于后期录入6个评委的分数int[] scores =newint[6];//2.录入6个评委的分数Scanner sc =newScanner(System.in);for(int i =0; i < scores.length; i++){System.out.println("请您输入第"+(i+1)+"个评委的打分:");int score = sc.nextInt();//3.把这个分数存入到数组的对应位置处
scores[i]= score;}//3.遍历数组中的每个数据,找出最大值,最小值,总分int max = scores[0];int min = scores[0];int sum =0;for(int i =0; i < scores.length; i++){if(scores[i]> max ){//替换最大值变量存储的数据
max = scores[i];}if(scores[i]< min){//替换最小值变量存储的数据
min = scores[i];}//统计总分
sum += scores[i];}System.out.println("最高分是:"+ max);System.out.println("最低分是:"+ min);//统计平均分double result =(sum - max - min)*1.0/(scores.length-2);System.out.println("选手最终得分是:"+ result);}}
数字加密
//需求:// ⚫ 某系统的数字密码,比如1983,采用加密方式进行传输,规则如下:先得到每位数,然后每位数都加上// 5 , 再对10求余,最后将所有数字反转,得到一串新数。publicclassTest6{publicstaticvoidmain(String[] args){//1.定义一个数组存储需要加密的数据int[] arr =newint[]{1,9,8,3};//2.遍历数组中的每个数据,按照规则进行修改for(int i =0; i < arr.length; i++){
arr[i]=(arr[i]+5)%10;}//3.把数组中的元素进行反转操作for(int i =0, j = arr.length -1; i < j ; i++, j--){//交换i和j位置处的值,即可反转int temp = arr[j];
arr[j]= arr[i];
arr[i]= temp;}//4.遍历数组中的每个元素,输出即可for(int i =0; i < arr.length; i++){System.out.print(arr[i]);}}}
模拟双色球
importjava.util.Random;importjava.util.Scanner;//用户输入一组双色球号码分析:// ⚫ 定义一个方法,该方法可以录入用户输入的6个红球和1个篮球号码// ⚫ 该方法最终需要返回一个数组,数组中就是用户录入的号码(7位)。publicclassTest7{publicstaticvoidmain(String[] args){//1.创建中奖号码int[]LuckNumbers=createLuckNumber();//printArray(LuckNumbers);//2.输入用户号码int[] userNumbers =userInputNumber();//printArray(userNumbers);//3.判断中奖情况judge(LuckNumbers,userNumbers);}publicstaticvoidprintArray(int[] arr){for(int i =0; i < arr.length; i++){System.out.print(arr[i]+"\t");}System.out.println();//换行}publicstaticint[]createLuckNumber(){//定义一个动态初始化数组,存储7个数字int[] numbers =newint[7];//遍历数组,为每个位置生成对应的号码//注意:遍历前6个位置,生成6个不重复的红球号码1-33Random r =newRandom();for(int i =0; i < numbers.length-1; i++){//为当前位置找出一个不重复的1-33之间的数字while(true){int data = r.nextInt(33)+1;//1-33//重点:必须判断当前随机的号码之前是否出现过,若出现过则重新随机一个//定义一个flag变量,认为data没有重复boolean flag =true;for(int j =0; j < i; j++){if(numbers[j]==data){//data当前的数据之前出现过
flag =false;break;}}if(flag ==true){//data数据之前没有出现过,可以使用
numbers [i]= data;break;}}}//为第7个位置生成一个1-16的蓝球号码
numbers[numbers.length-1]= r.nextInt(16)+1;return numbers;}publicstaticint[]userInputNumber(){//定义一个数组存储7个号码int[] numbers =newint[7];//让用户录入6个红球号码Scanner sc =newScanner(System.in);for(int i =0; i < numbers.length -1; i++){System.out.println("请您输入第"+(i +1)+"个红球号码(1-33,要求不重复):");int data = sc.nextInt();//把当前录入的数据存入到数组中去
numbers[i]= data;}//单独录入一个蓝球号码System.out.println("请输入一个蓝球号码(1-16):");
numbers [numbers.length -1]= sc.nextInt();return numbers;}publicstaticvoidjudge(int[]LuckNumbers,int[] userNumbers){//判断是否中奖//1.定义2个变量分别保存红球和蓝球命中的个数int redNumbers =0;int blueNumber =0;//2.判断红球命中了几个,开始统计for(int i =0; i < userNumbers.length -1; i++){for(int j =0; j <LuckNumbers.length -1; j++){//每次找到了相等的,意味着当前号码命中了if(userNumbers[i]==LuckNumbers[j]){
redNumbers++;break;}}}//蓝球号码是否命中了
blueNumber =LuckNumbers[LuckNumbers.length-1]== userNumbers[userNumbers.length-1]?1:0;System.out.println("中奖号码是:");printArray(LuckNumbers);System.out.println("您的号码是:");printArray(userNumbers);System.out.println("您命中了"+ redNumbers +"个红球");System.out.println("您命中了"+ blueNumber +"个蓝球");//判断中奖情况if(blueNumber ==1&& redNumbers <3){System.out.println("恭喜您!中了5元小奖!");}elseif(blueNumber ==1&& redNumbers ==3|| blueNumber ==0&& redNumbers ==4){System.out.println("恭喜您!中了10元小奖!");}elseif(blueNumber ==1&& redNumbers ==4|| blueNumber ==0&& redNumbers ==5){System.out.println("恭喜您!中了200元奖金!");}elseif(blueNumber ==1&& redNumbers ==5){System.out.println("恭喜您!中了3000元奖金!");}elseif(blueNumber ==0&& redNumbers ==6){System.out.println("恭喜您!中了500万元大奖!");}elseif(blueNumber ==1&& redNumbers ==6){System.out.println("恭喜您!中了1000万元超级大奖!");}else{System.out.println("感谢您为福利事业做出的突出贡献!");}}}