Java Core - Tính giai thừa trong java

Tính giai thừa trong java

Định nghĩa giai thừa: giai thừa của 1 số là tích các số liên tiếp từ 1 đến số đó. Trường hợp đặc biệt, giai thừa của 0 và 1 là 1.

Ví dụ: giai thừa của 5 là 1*2*3*4*5 = 120

Có 2 cách để viết chương trình tính giai thừa trong java:

  • Tính giai thừa không sử dụng đệ quy
  • Tính giai thừ có sử dụng đệ quy

Tính giai thừa không sử dụng đệ quy

Ví dụ chương trình tính giai thừa trong java không sử dụng phương pháp đệ quy:

package com.hiepsiit.baitap;

import java.util.Scanner;

public class GiaiThua_ver01 {
	
	private static int tinh_giai_thua(int k) {
		int temp = 1;
		if(k<0) {
			return -1;
		}else if((k==0)||(k==1)) {
			return 1;
		}else {
			for(int i=2; i<=k; i++) {
				temp*= i;
			}
		}
		return temp;
	}

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int n=0;
		Scanner scan = new Scanner(System.in);
		System.out.print("Nhập số: ");
		n = scan.nextInt();
		System.out.println("Giai thừa của "+n+" là: "+tinh_giai_thua(n));
	}

}

Kết quả:


Tính giai thừa có sử dụng đệ quy

Ví dụ chương trình tính giai thừa trong java có sử dụng phương pháp đệ quy:

package com.hiepsiit.baitap;

import java.util.Scanner;

public class GiaiThua_ver02 {
	
	private static int tinh_giai_thua(int k) {
		int temp=1;
		if(k<0) {
			return -1;
		}else if((k==0)||(k==1)) {
			return 1;
		}else {
			return k * tinh_giai_thua(k-1);
		}
	}

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int n=0;
		Scanner scan = new Scanner(System.in);
		System.out.print("Nhập số: ");
		n = scan.nextInt();
		System.out.println("Giai thừa của "+n+" là: "+tinh_giai_thua(n));
	}

}

Kết quả: