在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]);
運行結果:
