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