数组下标i和j值互质时,a[i][j] = true,反之false
Write a program to create an n * n Boolean array. If I and j are coprime, a [i] [J] is true, otherwise it is false
/**
* When Array index Mutuality ,a[i][j] = true,else is false
* 数组i和j值互质时,a[i][j] = true,反之false
* Recursive implementation
* 递归实现
*/
public static boolean[][] Mutuality( boolean[][] a)
{
for(int i = 0; i < a.length; i++)
{
for(int j = 0; j < a[0].length; j++)
{
if( huzhi(i,j) == 1 )
a[i][j] = true;
else
a[i][j] = false;
}
}
return a;
}
//新建一个方法来判断i和j是否互质
//接收i和j
public static int huzhi(int m, int n)
{
//当两个数的值其中有一个为0,那么这两个数必定互质
if( m == 0 || n == 0 )
return 1;
//若两个数能够整除,则必定不互质
if( m % n ==0 )
return n;
//若不能整除,m n 互质当且仅当 n 与 m%n 互质
else
return huzhi( n , m % n );
}
//测试一下
public static void main(String [] args)
{
boolean[][] a = new boolean[5][5];
Mutuality(a);
//输出
for(int i = 0; i < a.length; i++)
{
for(int j = 0; j < a[0].length; j++)
{
System.out.print(a[i][j]+" ");
}System.out.println();}
}