Programming Basics SQL HTML CSS JavaScript Python C++ Java JavaFX Swing Problem Solving English English Conversations Computer Fundamentals Learn Typing

الخوارزمياتحساب قيمة الـ Factorial للعدد - التمرين الثالث

هذا التمرين مهم جداً لأنك ستتعلم منه طريقة جديدة تجعلك تحصل على الـ Factorial للعدد بكود أقل.


المطلوب

أكتب برنامج يطلب من المستخدم إعطائه عدد صحيح و يخزنه في المتغير N.
ثم يقوم بحساب ناتج جمع جميع الأرقام من 1 إلى N كما في الصورة التالية.


إرشادات

  1. S هو المتغير الذي سيحتوي على مجموع كل الأرقام الموجودة من 1 إلى N.
  2. i هو المتغير (العداد) الذي يزيد واحد في كل دورة.
  3. F هو المتغير الذي نخزن فيه الـ Factorial لقيم العداد i.
  4. N هو المتغير الذي يخزن العدد الذي سيدخله المستخدم و الذي تتوقف عنده الحلقة.
  5. الحلقة تبدأ من 1 و تتوقف عند N, أي عند العدد الذي أدخله المستخدم.

النتيجة المطلوبة

لنفترض أن المستخدم أدخل العدد 4.

طريقة التحليل

سنستخدم الجدول ليكون الشرح أوضح.

الخوارزمية

كود الجافا

import java.util.Scanner;
public class Factorial_Sum {
public static void main (String[] args) {
Scanner input = new Scanner(System.in);
int N;
int F = 1;
double S = 0;
System.out.print("Enter a number For N : ");
N = input.nextInt();
for (int i=1; i<=N; i++)
{
F = F * i;
S = S + F;
}
System.out.print("S = " +S+ "\n");
}
}
import java.util.Scanner; public class Factorial_Sum { public static void main (String[] args) { Scanner input = new Scanner(System.in); int N; int F = 1; double S = 0; System.out.print("Enter a number For N : "); N = input.nextInt(); for (int i=1; i<=N; i++) { F = F * i; S = S + F; } System.out.print("S = " +S+ "\n"); } }

شرح الكود


  • الهدف من هذا السؤال, إعطائك أفضل طريقة للحل بأصغر كود ممكن.


int N;
int F = 1;
double S = 0;
int N; int F = 1; double S = 0;
  • هنا قمنا بتجهيز المتغير N لتخزين الرقم الذي سيدخله المستخدم.
  • و المتغير F لتخزين الـ Factorial لكل قيمة من قيم العداد i الذي سنستخدمه في الحلقة.
  • و المتغير S لتخزين المجموع النهائي.


System.out.print("Enter a number for N: ");
N = input.nextInt();
System.out.print("Enter a number for N: "); N = input.nextInt();
  • هنا طلبنا من المستخدم إدخال عدد, ثم وضعناه في المتغير N.


for (int i=1; i<=N; i++)
{
F = F * i;
S = S + F;
}
for (int i=1; i<=N; i++) { F = F * i; S = S + F; }
  • هنا في كل دورة من دورات الحلقة i سيحدث التالي:
    • سيتم ضرب قيمة المتغير F بقيمة العداد i الحالية و تخزين الناتج في المتغير F.
      بهذه الطريقة سيحتوي المتغير F على قيمة الـ Factorial للعداد i في كل دورة.
    • بعد أن أصبحت قيمة الـ Factorial للعداد i مخزنة في المتغير F, سيتم إضافتها على قيمة المتغير S.


System.out.print("S = " +S+ "\n");
System.out.print("S = " +S+ "\n");
  • في الأخير سيتم عرض نتيجة جمع قيم الـ Factorials المخزنة في المتغير S.

نرجو منك الإنتقال لدورة البرمجة للمبتدئين الجديدة التي أنشأنها كبديل أفضل لهذه الدورة ففي تلك الدورة قمنا بتبسيط الشرح أكثر و جعلناك قادر على تجربة الكود بشكل مباشر في موقعنا.


دورة تعلم البرمجة للمبتدئين >