PDA

View Full Version : سوال در مورد فاکتوریل



toytown
جمعه 09 اردیبهشت 1390, 04:28 صبح
سلام دوستان

من برنامه زیر رو تو توربو سی پلاس پلاس اجرا کردم و مشکلی نداشت


#include <iostream.h>
int main ()
{
short a;
cout<<"adad";
cin>>a;
unsigned int r=1;
for (int fact=a;fact>0;fact--)
r*=fact;
cout<<r;
return 0;
}

اگر در مورد این دوخط برنامه و اینکه حلقه چه طور تکرار میشه توضیح بدین ممنون میشم


for (int fact=a;fact>0;fact--)
r*=fact;
cout<<r;

Kubuntu
جمعه 09 اردیبهشت 1390, 16:53 عصر
نوع داده unsigned هم مثل نوع داده های دیگه ست (intو ...) فقط از صفر تا مثبت یه عدد خیلی بزرگ محدوده اشه!
در حلقه for میگه تا زمانی حلقه ادامه داشته باشه که متغیر بزرگتر از صفره. اگه مقدار fact منفی باشه شرط برقرار نیست و حلقه اجرا نمی شود.
فرض a=12 درنتیجه fact =12
r*=fact
یعنی:
r= 12*11*10*9*...*1

موفق باشی