PDA

نسخه کامل مشاهده نسخه کامل : الگریتم فاکتوریل



devil_ff2008
24-11-2008, 17:35
سلام دوستان
کسی میدونه الگوریتم فاکتوریل با استفاده از یک متغیر رو میشهیاده سازی کرد ؟
من که هر چی زور زدم کمتر از 2 تا نشد
:10:

thelastblack
24-11-2008, 18:58
دوست عزیز میتونی یه تابع بازگشتی بنویسی مثل این الگوریتم( n ورودی تابع است و Result هم خروجی اون):
شروع
اگر n=1 آن گاه result = 1 در عیر این صورت
( result = n * f(n-1

خیلی ساده بود نه؟

masood hashemy
24-11-2008, 20:22
سلام دوست عزیز
من برای شما از از دو روش استفاده کردم که خیلی ساده هم هست از روی برنامه کاملا الگوئیتم مشخص است: این چیزی که نوشتم در یک فایل txt کپی کن تا درست بشه آخه فروم راست چین هست و انگلیس رو بهم میریزه.

روش اول:

#include<iostream.h>
void main(){
int n=1,i,fact=1
cin>>n;
for(i=1;i<=n;i++)
fact*=n
cout<<"factorial "<<n<<" ="<<fact;
}

روش دوم:

#include<iostream.h>
void main(){
int n=1,num,fact=1
cin>>num;
while(num>1)
fact*=num--;
cout<<"factorial "<<num<<" ="<<fact;
}
در روش اول به این صورت هست که وقتی میگوییم فاکتوریل مثلا عدد 4 به این صورت حساب میکند:1 در 2 در 3 در 4
در روش دوم به این صورت هست که وقتی میگوییم فاکتوریل مثلا عدد 4 به این صورت حساب میکند:4 در 3 در 2 در 1

امیدوارم مفید واقع شود.

devil_ff2008
25-11-2008, 11:14
دوستان مثل اینکه متوجه سوال بنده نشدید

کسی میدونه الگوریتم فاکتوریل با استفاده از یک متغیر رو میشه پیاده سازی کرد ؟
من که هر چی زور زدم کمتر از 2 تا نشد

aynazha
27-11-2008, 17:22
فکر کنم راه زیر جواب بده:

n رو از ورودی بگیر ، من فقط تابع رو مینویسم خودت کاملش کن
int fact(int n)
while(n>=0) }
if(n==1 || n==0)}
return 1;
else
n*=fact(n-1):
return n;{{
در آخر هم که توی main دستورات خروجی رو مینویسی

devil_ff2008
27-11-2008, 23:07
ممنون برنامه درسته
ولی الگوریتمشو نمیدونم چوری میشه نوشت