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

来源:互联网 发布:mac 系统怎么翻墙 编辑:程序博客网 时间:2024/06/11 17:52

在我的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 ; //正整数最小就是1for(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);}}



0 0
原创粉丝点击