方XiRui 发表于 2013-2-3 14:05:46

JAVA经典算法40题(3)

【程序5】题目:利用条件运算符的嵌套来完成此题:学习成绩> =90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
1.程序分析:(a> b)?a:b这是条件运算符的基本例子。
import javax.swing.*;public class ex5 {    public static void main(String[] args){      String str="";      str=JOptionPane.showInputDialog("请输入N的值(输入exit退出):");      int N = 0 ;      try{                  N=Integer.parseInt(str);      catch(NumberFormatException e){            e.printStackTrace();      }      str=(N>90?"A":(N>60?"B":"C"));      System.out.println(str);    }} 
【程序6】题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
1.程序分析:利用辗除法。
最大公约数:

public class CommonDivisor{    public static void main(String args[]){      commonDivisor(24,32);    }    static int commonDivisor(int M, int N){      if(N<0||M<0) {            System.out.println("ERROR!");            return -1;      }      if(N==0){            System.out.println("the biggest common divisor is :"+M);            return M;      }      return commonDivisor(N,M%N);    }} 2.最小公倍数和最大公约数:
import java.util.Scanner;public class CandC {    //下面的方法是求出最大公约数    public static int gcd(int m, int n){      while (true){            if ((m = m % n) == 0)                return n;            if ((n = n % m) == 0)                return m;      }    }    public static void main(String args[]) throws Exception{      //取得输入值      //Scanner chin = new Scanner(System.in);      //int a = chin.nextInt(), b = chin.nextInt();      int a=23;      int b=32;      int c = gcd(a, b);      System.out.println("最小公倍数:" + a * b / c + "\n最大公约数:" + c);    }} 

 
页: [1]
查看完整版本: JAVA经典算法40题(3)