Java สอนเขียนโปรแกรมหาค่า Factorial : n! = n * (n - 1) * (n - 2) * ... * 1

โจทย์ แบบฝึกหัดและวิธีทำเขียนโปรแกรมหาค่า Factorial : n! = n * (n - 1) * (n - 2) * ... * 1 แสดงการนำ for มาใช้ในโปรแกรมเพื่อให้ได้ผลลัพธ์ที่ต้องการ

May 06, 2015

แก้ไขล่าสุด มีผู้อ่าน 14,931  |  JAVA PROGRAMMING EXAM

เป็นโจทย์ 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

 


แบ่งปัน

ชอบ +1

บันทึก

ฝากคำถาม คำแนะนำ ได้ที่

Facebook : Share.OlanLab.Com
LINE ID : @olanlab
อีเมล์ : olan@olanlab.com
Software Engineer, Inventor, Writer, Trainer
Share คลังความรู้ด้านเทคโนโลยี สารสนเทศ นวัตกรรมคอมพิวเตอร์ สอนเขียนโปรแกรม Php Java Html CSS Javascript C C++ Objective-C และอื่นๆ บนระบบปฏิบัติการ Window Linux Unix CentOS IOS Android
โดยผู้เขียนที่มีความเชี่ยวชาญเฉพาะ ให้บริการพื้นที่สำหรับนักเขียนที่ต้องการแบ่งปันความรู้ พร้อมให้คำปรึกษาแก่ผู้ที่สนใจ โดยไม่เสียค่าใช้จ่าย