一些面试程序题目的小程序

1、求出两个整形数的最大公约数和最小公倍数。

代码如下 :

package test;
import java.util.Scanner;
public class Test {  
public static int biggestGongYue(int a,int b){ 
   if(a==0){
    System.exit(0);
   }
       if(a>b){  
           int temp=a;  
           a=b;  
           b=temp;  
       }        
        if(b%a==0){
        return a;  
       } else {
        return biggestGongYue(a,b%a);  
       }
  }
//两个整形数的最小公倍数= 两个整形数的积/两个数的最大公约数
public static int smallestGongBei(int x,int y){
return (x*y)/biggestGongYue(x,y);
}
public static void main(String args[]){  
  int max;   
  int min;   
  Scanner scan=new Scanner(System.in);  
  System.out.print("请输入一个数max:");   
  max=scan.nextInt();   
  System.out.print("请输入另一个数min:");   
  min=scan.nextInt();   
  System.out.println("max和min的最大公约数为:"+biggestGongYue(max,min));   
  System.out.println("max和min的最小公倍数为:"+smallestGongBei(max,min));  


  } 
}  

如果输入的两个数是:8,4

输出的结果是:

请输入一个数max:8
请输入另一个数min:4
max和min的最大公约数为:4
max和min的最小公倍数为:8

======================

2。对于两个整形数,a,和b ,在不借助第三个变量的情况下,如何让他们交换一下?

代码如下:

方法一:

package test;

public class VarChange {
public static void main(String[] args) {
int a = 5;
int b = 6;
a = a + b ;
b = a - b ;
a = a - b ;
System.out.println("a="+a);
System.out.println("b="+b);
}
}

方法二:

package test;
public class VarChange {
public static void main(String[] args) {
int a = 5;
int b = 6;
a = a ^ b ;
b = b ^ a ;
a = a ^ b ;
System.out.println("a="+a);
System.out.println("b="+b);
}
}

你可能感兴趣的:(java)