/*
第一题:
需求:将数组由小到大进行排列,数组中的素数全部赋值为零,并按阶梯状输出。
思路和步骤:(1)建一个selectSort()函数,给数组由小到大排序。
(2)建一个ifPrime()函数进行素数判定,给素数赋值0。
(3)建一个printArray()函数,按阶梯状输出数组中的数。
*/
class ArrayTest1
{
public static void main(String[] args)
{
int arr[] = {2,5,9,10,48,95,154,31,59,69};
selectSort(arr);//给int数组排序。
ifPrime(arr);//素数判定,给素数赋值0。
printArray(arr);//阶梯状输出。
}
/**
给int数组排序。
@param arr 接收一个int类型的数组。
@param 给int数组进行从小到大选择排序。
*/
public static void selectSort(int[] arr)
{
for (int x=0; x<arr.length-1 ; x++ )
{
for(int y=x+1; y<arr.length; y++)
{
if(arr[x]>arr[y])
{
swap(arr,x,y);
}
}
}
}
/**
给数组中元素进行位置的置换。
@param arr 接收一个int类型的数组。
@param a 要置换的位置
@param b 要置换的位置
*/
private static void swap(int[] arr,int a,int b)
{
int temp = arr[a];
arr[a] = arr[b];
arr[b] = temp;
}
/**
对一个数组中的数进行判断,把素数赋值为0。
@param arr 接收一个int类型的数组。
@param 对这个数组中遍历。
@param 判断这个数组中的每个数是否素数,如果素数则赋值为0。
*/
public static void ifPrime(int[] arr)
{
for (int x=0; x<arr.length; x++ )
{
int count = 0;
for (int j=1; j<=arr[x]; j++)
{
if(arr[x]%j == 0)
count++;
}
if(count==2)
arr[x] = 0;
}
}
/**
用于打印数组中的元素。打印形式是阶梯状。
*/
public static void printArray(int[] arr)
{
for(int x=0; x<arr.length; x++)
{
for(int y=1;y<=x;y++)
{
System.out.print("\t");
}
System.out.println(arr[x]);
}
}
}
/*
第二题:
需求:输出倒序杨辉三角。
思路:(1)创建一个正序杨辉三角。发现杨辉三角中有行和列,行数
和列数相同,建立一个二维数组,把杨辉三角中的数全部放到
二维数组中。
(2)倒序打印这个二维数组,可以得到倒序的杨辉三角。
步骤:(1)创建一个yangHui()函数,用于建立一个正序杨辉三角,并赋
相应的数值。
(2)创建一个printArr()函数,用于倒序打印杨辉三角。
(3)在yangHui()函数中调用printArr()函数,在main()中调用
yangHui()函数。可以得到倒序杨辉三角。
*/
class ArrayTest2
{
public static void main(String[] args)
{
yangHui(5);//要打印的倒序杨辉三角图形有五行,因此把5传给yangHui()函数。
}
/*
建一个正序的杨辉三角函数yangHui()。
*/
public static void yangHui(int row)
{
int[][] arr = new int[row][row];
for (int x=0; x<row; x++)
{
for (int y=0;y<=x ;y++ )
{
if (y==0 || y==x)
{
arr[x][y] = 1;//杨辉三角每行的行首和行尾数值都是1。
continue;
}
else
arr[x][y] = arr[x-1][y-1] + arr[x-1][y];//在杨辉三角相应位置赋值。
}
}
printArr(arr,row);
}
/*
建一个用于倒序打印杨辉三角的printArr函数。
*/
private static void printArr(int[][] arr,int row)
{
for (int x=row-1; x>=0; x--)
{
for (int m=row-1; m>x; m--)
{
System.out.print("\t");
}
for (int y=0;y<=x ;y++ )
{
System.out.print(arr[x][y]);
System.out.print("\t\t");
}
System.out.println();
}
}
}
|
|