1.實現(xiàn)出入不定數(shù)量參數(shù),進(jìn)行排序(考點:可變參數(shù)其實是把參數(shù)存到數(shù)組里)
/**
* (double...d)表示可變參數(shù),多少個參數(shù)都可以
* @author Administrator
*
*/
public class Max {
public static void main(String[]args){
double m=max(1.1,5.2,8.3,55.4,6.4,8.5);
System.out.println(m);
}
public static double max(double...d){
double largest=0;
for(double dl:d){
if(dl>largest){
largest=dl;
}
}
return largest;
}
}
2.抽獎
/**This program demonstrates array manipulation
* 實現(xiàn)抽獎
* 通過鍵盤輸入從多少個數(shù)抽取多少個數(shù)
* 將總數(shù)構(gòu)建一個數(shù)組参淫,為數(shù)組填滿元素翁授,數(shù)組長度為輸入的總長度
* 建立抽取多少個數(shù)的數(shù)組拣播,數(shù)組長度為輸入的想抽取的數(shù),通過隨機(jī)數(shù)乘總數(shù)得到數(shù)字
* 收擦,因為抽到的數(shù)字一定是總數(shù)里的數(shù)字贮配,所以隨機(jī)數(shù)乘總數(shù)作為總數(shù)數(shù)組里的索引,
* 將索引值所得到的數(shù)填充到抽到的數(shù)字塞赂。
* 為控制每次索引得到的不是同一個數(shù)泪勒,把索引過的索引到的數(shù)字替換為總數(shù)數(shù)組里的最后一個數(shù),
* 通過“索引位--”去除總數(shù)數(shù)組里的最后一個的索引位宴猾,
* 其實不是真實去除圆存,只是永遠(yuǎn)不會索引到,數(shù)組里還是存在的
*/
import java.util.*;
public class choujiang {
public static void main(String[] args){
Scanner in=new Scanner(System.in);
System.out.println("How many numbers do you want to draw?");
int a=in.nextInt();
System.out.println("What is the highest number you can draw");
int b=in.nextInt();
int []numbers=new int[a]; //往數(shù)組裝入總數(shù)字
for(int i=0;i<numbers.length;i++){
numbers[i]=i+1;
}
int []results=new int[b]; //往數(shù)組裝入要選多少個
for(int i=0;i<results.length;i++){
int r=numbers[(int) (Math.random()*a)]; //得出中獎號碼仇哆,讓隨機(jī)數(shù)不會出現(xiàn)去除數(shù)的索引
results[i]=numbers[r];
numbers[r]=numbers[a-1]; //將已經(jīng)獲取到的數(shù)變一個值沦辙,在獲取此索引是獲取的不是相同值
a--;
}
Arrays.sort(results);
System.out.println(Arrays.toString(results));
}
}
3.數(shù)三進(jìn)一問題
/**
* Test 數(shù)3退1的問題
* 建立一個500個孩子的布爾型數(shù)組,在里面為true讹剔,不再為false
* 一開始500孩子都在里面油讯,賦值true
* 當(dāng)剩下的孩子多于一個的時候進(jìn)行循環(huán)
* 如果孩子在里面,數(shù)的數(shù)加1延欠;當(dāng)數(shù)等于3是陌兑,把孩子設(shè)置為false就不在里面了
* 退出如果語句,索引值增大衫冻,如果索引值等于數(shù)組長度诀紊,索引值歸零重新循環(huán)
* 多次循環(huán)后數(shù)組里只有一個值為true
* 通過for循環(huán),if判斷true得出數(shù)組里的true值
* @author Administrator
*
*/
public class Count {
public static void main(String[]args){
Boolean [] a=new Boolean[500];
for(int i=0;i<a.length;i++){
a[i]=true;
}
int leftcount=500;
int count=0;
int temp=0;
while(leftcount>1){
if(a[temp]==true){
count++;
if(count==3){
a[temp]=false;
leftcount--;
count=0;
}
}
temp++;
if(temp==500){
temp=0;
}
}
for(int i=0;i<500;i++){
if(a[i]==true){
System.out.println(i);
}
}
}
}