在1-36之间随机生成6个不同的数字:
- import java.util.*;
- public class Random1{
- public static void main(String [] args){
- Random r=new Random();//定义随机生成器
- int num[]=new int[6];//定义一个长度为6的数组 用来存放生成的数
- //产生随机数
- for(int i=0;i<6;i++){
- num[i]=r.nextInt(36)+1;//随机生成的数字是0-35,彩票号码是0-36 所以要+1
- for(int j=0;j<i;j++){//新生成的数字要跟之前的数字比较 如果出现重复 则计数器-1 重新生成
- if(num[j]==num[i]){
- i--;break;
- }
- }
- }
- Arrays.sort(num);//对已经生成的6个号码 从大到小排序
- System.out.print("中奖号码:");
- for(int a :num){
- System.out.print(a+" ");
- }
复制代码
任何一个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]);
复制代码
|
|