你的位置:首页 > Java教程

[Java教程]语句练习3


在1-36之间随机生成6个不同的数字:

 1 import java.util.*; 2 public class Random1{ 3   public static void main(String [] args){ 4    Random r=new Random();//定义随机生成器 5    int num[]=new int[6];//定义一个长度为6的数组 用来存放生成的数 6    //产生随机数 7    for(int i=0;i<6;i++){ 8      num[i]=r.nextInt(36)+1;//随机生成的数字是0-35,彩票号码是0-36 所以要+1 9      for(int j=0;j<i;j++){//新生成的数字要跟之前的数字比较 如果出现重复 则计数器-1 重新生成10        if(num[j]==num[i]){11          i--;break;12         }13       }14     }15    Arrays.sort(num);//对已经生成的6个号码 从大到小排序16    System.out.print("中奖号码:");  17    for(int a :num){18      System.out.print(a+" ");19    }

运行结果:中奖号码:7  15  23  28  31  33

 

任何一个4位数(4个数字均为同一个数字的例外),组成该数的4个数字重新组合成可能的最大数和可能的最小数,求最大数与最小数的差 并输出最终结果:

    Scanner sc2=new Scanner(System.in);    System.out.print("请输入一个每位上不完全形同的四位数:");    int []n=new int[9999];    n[0]=sc2.nextInt();    for(int z=0;;){      //分拆4位数的每一位      int arr[]={0,0,0,0};      arr[0]=n[z]%10;      arr[1]=n[z]/10%10;      arr[2]=n[z]/100%10;      arr[3]=n[z]/1000%10;      //对每位上的数 从小到大排序      for(int x=0;x<4;x++){        for(int y=0;y<4-x-1;y++){         if(arr[y]>arr[y+1])         {           int t=arr[y];           arr[y]=arr[y+1];           arr[y+1]=t;         }       }      }      //重新组合后的最大数和最小数      int nMax=arr[3]*1000+arr[2]*100+arr[1]*10+arr[0];      int nMin=arr[0]*1000+arr[1]*100+arr[2]*10+arr[3];      //计算最大数与最小数的差  并存入一个新数组中      z++;      n[z]=nMax-nMin;      //当两次的结果相同的时候 跳出循环      if(n[z]==n[z-1])        break;      System.out.println("第"+z+"次的运算结果:"+n[z]);

运行结果: