A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 18895700133 中级黑马   /  2016-5-11 21:55  /  282 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在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.        }
复制代码

任何一个4位数(4个数字均为同一个数字的例外),组成该数的4个数字重新组合成可能的最大数和可能的最小数,求最大数与最小数的差 并输出最终结果:
  1. Scanner sc2=new Scanner(System.in);
  2.         System.out.print("请输入一个每位上不完全形同的四位数:");
  3.         int []n=new int[9999];
  4.         n[0]=sc2.nextInt();
  5.         for(int z=0;;){
  6.             //分拆4位数的每一位
  7.             int arr[]={0,0,0,0};
  8.             arr[0]=n[z]%10;
  9.             arr[1]=n[z]/10%10;
  10.             arr[2]=n[z]/100%10;
  11.             arr[3]=n[z]/1000%10;
  12.             //对每位上的数  从小到大排序
  13.             for(int x=0;x<4;x++){
  14.                for(int y=0;y<4-x-1;y++){
  15.                   if(arr[y]>arr[y+1])
  16.                   {
  17.                       int t=arr[y];
  18.                       arr[y]=arr[y+1];
  19.                       arr[y+1]=t;
  20.                   }
  21.               }
  22.             }
  23.             //重新组合后的最大数和最小数
  24.             int nMax=arr[3]*1000+arr[2]*100+arr[1]*10+arr[0];
  25.             int nMin=arr[0]*1000+arr[1]*100+arr[2]*10+arr[3];
  26.             //计算最大数与最小数的差   并存入一个新数组中
  27.             z++;
  28.             n[z]=nMax-nMin;
  29.             //当两次的结果相同的时候  跳出循环
  30.             if(n[z]==n[z-1])
  31.                 break;
  32.             System.out.println("第"+z+"次的运算结果:"+n[z]);
复制代码



0 个回复

您需要登录后才可以回帖 登录 | 加入黑马