语句练习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]);

运行结果:

posted @ 2016-05-11 11:25  唐枫  阅读(164)  评论(0编辑  收藏  举报