PDA

View Full Version : سوال: توضیح درباره کد فاکتوریل



vahidth
چهارشنبه 13 دی 1391, 11:55 صبح
سلام
دوستان میشه این کد رو خوب توضیح بدین که قدیقا چیکار میکنه این کد برای فاکتوریل هست
int x, i;
string st1;
int fact=1;
st1 = Console.ReadLine();
x = Int32.Parse(st1);
for (i = 1; i <= x; i++)
{
fact = fact * i;


}
Console.WriteLine(fact);
x++;
Console.ReadKey();

SlowCode
چهارشنبه 13 دی 1391, 12:18 عصر
سلام
تو خط چهارم مقدار ورودی رو میریزیم به st1 بعد تبدیل میشه به عدد صحیح و توی x ذخیره میشه، بعد توی حلقه تا زمانی که i کمتر از عدد ورودی باشه fact رو ضرب در i میکنه و بعد چاپش میکنه.

مثلا اگه عدد 4 رو وارد کنه، عملیات زیر انجام میشه:

fact=fact*1
fact=fact*2
fact=fact*3
fact=fact*4

که جواب میشه 24

mofid002006@gmail.com
چهارشنبه 13 دی 1391, 12:19 عصر
متغیر fact مقدار فاکتوریل رو نگهداری می کنه که برای اولین بار با 1 مقدار دهی شده تا وقتی که می خواد برای اولین بار در یک عدد ضرب بشه، مقدارش برابر همون عدد بشه
متغیر x عدد ورودی توسط کاربره
با حلقه ی for ، شمارنده (متغیر i ) از یک شروع میشه و توی هر مرحله از تکرار حلقه، یکی بهش اضافه میشه تا برابر عدد وارد شده بشه و در هر بار تکرار حلقه، مقدار درون fact در شمارنده ضرب شده و حاصل دوباره درون fact قرار می گیره.
به طور مثال برای ورودی 4 (x=4) :
fact=1
x=4
i=1 ==> fact = fact * i ==> fact=1*1=1
i=2 ==> fact = fact * i ==> fact=1*2=2
i=3 ==> fact = fact * i ==> fact=2*3=6
i=4 ==> fact = fact * i ==> fact=6*4=24

و در آخر هم این عدد در خروجی چاپ میشه