您的位置:首页 > 编程语言 > Java开发

Java:函数,类,数组之间的运用

2016-08-17 15:55 232 查看
在我的demoe类中,我实现了以下方法:
这个类在另外一个文件,demoe.java中
public class Demoe {
//计算一个数字因子的个数
public static int getLenght(int n){
int count = 0 ;
for(int i = 1 ; i <= n / 2 ; i++)
{
if(n % i == 0)
count++ ;
}
count++;
return count ;
}
//求一个数的因子(包含1也包含自己),放入数组并返回
public static int[] getSons(int n){
int []a = new int[getLenght(n)] ;
int j = 0 ;
for(int i = 1 ; i <= n / 2 ; i++){
if(n % i == 0)
a[j++] = i ;
}
a[j] = n ;//自己也要放进去
return a ;
}
//获取两个正int类型数组中相同且最大的那个元素
public static int getTheSameMax(int []a , int [] b){

int max = 1 ; //正整数最小就是1
for(int i = 0 ; i < a.length ; i++){
for(int j = 0 ; j < b.length ; j++){
if(a[i] == b[j]){
if(max < a[i])
max = b[i] ;
break ;
}
}
}
return max ;
}

//打印数组元素
public static void PrintArray(int []a){
for(int i = 0 ; i < a.length ; i++)
System.out.println(a[i]+" ");
System.out.println();
}
}
在HelloWorld.java中调用方法实现我的程序:public class HelloWorld {
public static void main(String[] args){
// Scanner s = new Scanner(System.in);
// System.out.println("请输入一个数字");
// int num = s.nextInt();
//数组与函数的结合
print_arr(12,18);
}
//求两个数字的最大公约数和最小公倍数(辗转相除法)
//a.分别找出两个数的公约数,并放入数组
//b.找出最大的,就是最大公约数
//c.两数想乘/最大公约数 = 最小公倍数
public static void print_arr(int a , int b){
//得到a的公约数
int [] x1 = Demoe.getSons(a);
Demoe.PrintArray(x1);
//得到b的公约数
int [] x2 = Demoe.getSons(b);
Demoe.PrintArray(x2);
//找出相同且最大的数是最大公约数
int max = Demoe.getTheSameMax(x1, x2);
//最小公倍数
int min = a * b /max ;
System.out.println(a+","+b+"的最大公约数是"+"最小公倍数是"+min);
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐