เป็นโจทย์ Classic อีกหนึ่งข้อ ที่ไม่ว่าจะเรียน Programming ภาษาไหน ทุกครั้งที่เรียนการทำซ้ำแบบวนลูป ก็จะถูกหยิบมาเป็นตัวอย่างให้ฝึกเขียนโปรแกรมกัน
โจทย์
การเขียนโปรแกรมหาค่า Factorial โดยค่า Factorial สามารถหาได้จากสมการดังต่อไปนี้
n! = n * (n - 1) * (n - 2) * ... * 1
วิเคราะห์
โจทย์ข้อนี้เป็นการรับค่าจากคีบอร์ด วิเคราะห์จากสมการจะเห็นว่าค่าที่รับมาจะถูกนำไปคูณและลดค่าทีละหนึ่งไปเรื่อยๆ ลองมาแปลงเป็นโค้ดกันเลยครับ
Source Code
package com.olanlab.share.exam;
import java.util.Scanner;
public class Factorial {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in); // ประกาศตัวแปรที่ใช้รับค่าจากคีบอร์ด
System.out.println("Calculation Factorail By Share.OlanLab.Com");
System.out.print("Please input n : ");
int result = 1;
int n = scan.nextInt(); // รับค่าจากคีบอร์ดมาเก็บในตัวแปร n
for (int i = n; i >= 1; i--) { // n! = n * (n - 1) * (n - 2) * ... * 1
result *= i; // วนลูปนำผลคูณที่ได้มาเก็บใน result
}
System.out.println("Result = " + result); // แสดงผลลัพธ์ Factorial
}
}
Output
Calculation Factorail By Share.OlanLab.Com
Please input n : 11
Result = 39916800
เนื้อหาบทความที่เกี่ยวข้องกับโจทย์
Java - สอน Java สำหรับผู้เริ่มต้น ตอนที่ 3 โครงสร้าง Java
Java - สอน Java สำหรับผู้เริ่มต้น ตอนที่ 4 Variable และ Memory Concept
Java - สอน Java สำหรับผู้เริ่มต้น ตอนที่ 7.3 Control Statement แบบทำซ้ำ for