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ả: