任務1:
寫兩個方法,其中一個方法可以把某個整數插入到整型數組的特定位置,數組中原有元素向後移動;另一個方法能夠從整形數組中特定位置刪除掉一個元素,數組中原有元素向前移動
public class InsertDeleteArray {
static int[] arrayCopy;//保存原有數據
/**
* @param array 原數組
* @param index 插入下標
* @return
*/
public static int [] insertArry(int[] array,int index,int value){
arrayCopy = new int[array.length+1];
for(int i = 0;i <= array.length;i++){
if(i < index){//如果i小於index,則直接賦值
arrayCopy[i] = array[i];
}else if(i == index){//如果i等於index,將value賦值
arrayCopy[i] = value;
}else{
arrayCopy[i] = array[i-1];//將原數組下標-1賦值給新數組
}
}
array = arrayCopy;
return array;
}
/**
* @param array 原數組
* @param index 刪除下標
* @return
*/
public static int [] deleteArry(int[] array,int index){
arrayCopy = new int[array.length-1];
for(int i = 0;i < array.length;i++){
if(i < index){//如果i小於index,則直接賦值
arrayCopy[i] = array[i];
}else{//如果i大於等於index,則將原數組賦值給現有數組下標-1
arrayCopy[i-1] = array[i];
}
}
array = arrayCopy;
return array;
}
/**
* @param array
* 打印數組
*/
public static void printArray(int[] array){
for(int i = 0;i < array.length;i++){
System.out.print(array[i]+" ");
}
System.out.println();
}
/**
* @param args
*/
public static void main(String[] args) {
int[] array = new int[]{1,5,6,8,9,7,3,2};
//int[] arrayCopy ;
int index = 5;
int value = 0;
System.out.println("原始數據");
printArray(array);
arrayCopy = insertArry(array,index,value);
System.out.printf("在指定位置%d插入%d\n",index,value);
printArray(arrayCopy);
System.out.printf("在指定位置%d刪除\n",index);
arrayCopy = deleteArry(array,index);
printArray(arrayCopy);
}
}
任務2
有偶數支足球隊進行單循環比賽,請按照指定算法打印每輪的對陣形勢.比如:有如下球隊:china,England,Germany,Italy,France,Agentia.
第一輪:
China-----Agentina
England-----France
Germany-----Italy
…
/**
* @author
* @version 1.0
* @date 2015年7月24日
* 第一輪 第二輪 第三輪 第四輪 第五輪
*
* 1-6 1-5 1-4 1-3 1-2
* 2-5 6-4 5-3 4-2 3-6
* 3-4 2-3 6-2 5-6 4-5
*
*/
public class SingleCycleRace {
static int[] index = new int[]{0,1,2,3,4,5};
/**
* @param country
* 打印賽事
*/
public static void printRace(String[] country){
int count = country.length - 1;
for(int j = 0;j < count;j++){//共有count輪比賽
System.out.println("第"+(j+1)+"比賽對陣:");//每輪有count/2對陣
for(int i = 0;i <= count/2;i++){
//System.out.print(country[index[i]]+"---"+country[index[count-i]]+" "+index[i]+"---"+index[count-i]);
System.out.print(country[index[i]]+"---"+country[index[count-i]]+" ");//打印對陣結果
}
System.out.println();
change(index);
//printfIndex(index);
}
}
/**
* @param index
* 修改下標
*/
public static void change(int[] index){
int end = index[index.length-1];
int temp = 0;
for(int i = index.length -1;i >= 1;i--){
index[i] = index[i-1];
}
index[1] = end;
}
/**
* @param index
* 打印下標變化
*/
public static void printfIndex(int[] index){
for(int i = 0;i < index.length;i++){
System.out.print(" "+index[i]);
}
System.out.println();
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String[] country = new String[]{
"china","England","Germany","Italy","France","Agentia"
};
printRace(country);
}
}
任務3:
驗證數學黑洞 用戶輸入一個四位數,輸出變換到6174的過程
例如:1234: 4321-1234=3087
8730-0378=8352
8532-2358=6174
/**
* @author WL-PC
* @version 1.0
* @date 2015年7月25日
*
* 驗證數學黑洞 用戶輸入一個四位數,輸出變換到6174的過程
*
* 原理是將原數可能得到各個位組成的最大值和最小值之差
*/
public class MathematicalBlackHole {
static int[] numberByte = new int[4];
// /**
// * @param number
// * @return
// * 將輸入的數逆序
// */
// public static int reverse(int number){
// int reverse = 0;
// int count = 1;
// while(number != 0){
// reverse = reverse+(number%10)*(1000/count);
// number = number/10;
// count = count*10;
// }
// return reverse;
// }
/**
* @param number
* 將傳入的數各個位排序
*/
public static void sortByte(int number){
int count = 0;
while(number != 0){
numberByte[count] = number%10;
number = number/10;
count++;
}
Arrays.sort(numberByte);
//printf(numberByte);
// System.out.println("===="+maxNumber(numberByte));
//
// System.out.println("===="+minNumber(numberByte));
}
// /**
// * @param numberByte
// * 打印數組
// */
// public static void printf(int[] numberByte){
// for(int i = 0;i < numberByte.length;i++){
// System.out.print(numberByte[i]);
// }
// }
/**
* @param number
* @return
* 數組組成最大值
*/
public static int maxNumber(int[] number){
int max = 0;
int count = 1;
for(int i = number.length-1; i >= 0;i--){
max = max + number[i]*(1000/count);
count = count*10;
}
return max;
}
public static int minNumber(int[] number){
int min = 0;
int count = 1;
for(int i = 0; i < number.length;i++){
min = min + number[i]*(1000/count);
count = count*10;
}
return min;
}
/**
* @param number 接受輸入的數
*/
public static void matathematicalBlackHole(int number){
int poor = 0;
int max = 0;
int min = 0;
if(number == 6174){
return;
}else{
sortByte(number);
max = maxNumber(numberByte);
min = minNumber(numberByte);
poor = max - min;
System.out.println(max+"-"+min+"="+poor);
matathematicalBlackHole(poor);
}
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int number = 1000;
System.out.println("請輸入一個四位數");
Scanner scanner = new Scanner(System.in);
number = scanner.nextInt();
matathematicalBlackHole(number);
//System.out.println(reverse(number));
//sortByte(number);
}
}
任務4 將學員成績按升序排序
/**
* @author WL-PC
* @version 1.0
* @date 2015年7月25日
*
* 驗證數學黑洞 用戶輸入一個四位數,輸出變換到6174的過程
*
* 原理是將原數可能得到各個位組成的最大值和最小值之差
*/
public class MathematicalBlackHole {
static int[] numberByte = new int[4];
// /**
// * @param number
// * @return
// * 將輸入的數逆序
// */
// public static int reverse(int number){
// int reverse = 0;
// int count = 1;
// while(number != 0){
// reverse = reverse+(number%10)*(1000/count);
// number = number/10;
// count = count*10;
// }
// return reverse;
// }
/**
* @param number
* 將傳入的數各個位排序
*/
public static void sortByte(int number){
int count = 0;
while(number != 0){
numberByte[count] = number%10;
number = number/10;
count++;
}
Arrays.sort(numberByte);
//printf(numberByte);
// System.out.println("===="+maxNumber(numberByte));
//
// System.out.println("===="+minNumber(numberByte));
}
// /**
// * @param numberByte
// * 打印數組
// */
// public static void printf(int[] numberByte){
// for(int i = 0;i < numberByte.length;i++){
// System.out.print(numberByte[i]);
// }
// }
/**
* @param number
* @return
* 數組組成最大值
*/
public static int maxNumber(int[] number){
int max = 0;
int count = 1;
for(int i = number.length-1; i >= 0;i--){
max = max + number[i]*(1000/count);
count = count*10;
}
return max;
}
public static int minNumber(int[] number){
int min = 0;
int count = 1;
for(int i = 0; i < number.length;i++){
min = min + number[i]*(1000/count);
count = count*10;
}
return min;
}
/**
* @param number 接受輸入的數
*/
public static void matathematicalBlackHole(int number){
int poor = 0;
int max = 0;
int min = 0;
if(number == 6174){
return;
}else{
sortByte(number);
max = maxNumber(numberByte);
min = minNumber(numberByte);
poor = max - min;
System.out.println(max+"-"+min+"="+poor);
matathematicalBlackHole(poor);
}
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int number = 1000;
System.out.println("請輸入一個四位數");
Scanner scanner = new Scanner(System.in);
number = scanner.nextInt();
matathematicalBlackHole(number);
//System.out.println(reverse(number));
//sortByte(number);
}
}
任務5: 實現最高成績的輸出
public class MaxScore {
/**
* @param scores 成績記錄
* @return 返回最大值 int
*/
public static int maxScore(int[] scores){
int max = 0;
for(int i = 0;i < scores.length;i++){
if(scores[i] > max){
max = scores[i];
}
}
return max;
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] scores = new int[5];//保存學員輸入的成績
Scanner scanner = new Scanner(System.in);//掃描器
int max = 0;//最大值
System.out.println("請輸入5位學員的成績");
for(int i = 0;i < scores.length;i++){
scores[i] = scanner.nextInt();
}
max = maxScore(scores);
System.out.println("考試成績最高分爲:"+max);
}
}
任務6:原始數組爲:1,3,-1,5,-2,逆序輸出原數組,並將小於0的元素按0存儲。
public class ReceverArray {
static int[] data = new int[]{1,3,-1,5,-2};
/**
* @param data 要逆轉的數組
* @return 逆轉後的數組
*/
public static int[] receverArray(int[] data){
int temp = 0;
for(int i = 0;i < data.length/2;i++){
temp = data[i];
data[i] = data[data.length-i-1];
data[data.length-i-1] = temp;
}
return data;
}
/**
* @param data 轉化的數組
* @return 轉化後的數組
*/
public static int[] zeroArray(int[] data){
for(int i = 0;i < data.length;i++){
if(data[i] < 0){
data[i] = 0;
}
}
return data;
}
/**
* @param data 要打印的數組
*/
public static void printArray(int[] data){
for(int i = data.length-1;i >= 0;i--){
System.out.print(data[i]+" ");
}
}
/**
* @param args
*/
public static void main(String[] args) {
int[] datas = new int[5];
System.out.print("原數據:");
printArray(data);
System.out.print("\n逆轉以後:");
datas = receverArray(data);
printArray(datas);
System.out.print("\n將負值變爲0:");
datas = zeroArray(data);
printArray(datas);
}
}