![]() |
فاکتوریل N - نسخهی قابل چاپ |
فاکتوریل N - diiimah - 20 فروردین ۱۳۹۳ ۰۱:۲۰ ب.ظ
با سلام . من یه برنامه میخوام که فاکتوریل یک عدد مثل n حساب کنه (n میتونه هر عدد خیلی بزرگی باشه)البته تو c++ خودم یه برنامه نوشتم تا ۳۳! رو حساب میکنه بعد یه خورده روش کار کردم شد این :؟ #include<iostream.h> #include<math.h> int main(){ const int size=1150; int a[size]={0}; int b,c=1,carry=0,d; long r; double p=0.0; cout<<"Pleas Enter number : "; cin>>b; for(int yt=2;yt<=b;yt++) p+=log10(yt); d=(long)p+1; for(int op=0;op<d;op++){a[op]=0; } if(b<0){ cout<<"\n\nError "; } if(b>=0){ a[0]=1; for(int i=1;i<=b;i++){ for(int v=0;v<d;v++){ r=i*a[v]+carry; a[v]=r; carry=a[v]/10; a[v]=r%10; } } for(int w=d-1;w>=0;w--) cout<<a[w]; } cout<<endl; return 0; } اگه یه راهنمایی کنید ممنون میشم. |
RE: فاکتوریل N - Jooybari - 20 فروردین ۱۳۹۳ ۰۳:۲۸ ب.ظ
سلام. کدتون رو نخوندم. پیشنهادم اینه که اگه دقت ۳۲ رقم پرارزش کافیه که همون double استفاده کنید. اگه دقیق نیاز دازید یه کلاس bigint تعریف کنید و عمل جمع و تفریق و بعدش هم ضرب رو پیاده کنید. هر رقم رو میشه یه کاراکتر درنظر گرفت. بعد میتونید با همون روش ساده از نوع متغیر bigint استفاده کنید. |
RE: فاکتوریل N - bargozideh - 20 فروردین ۱۳۹۳ ۰۶:۵۲ ب.ظ
سلام بر شما آقا کدت درسته . شما عددی که کاربر وارد میکنه رو درون آرایه جدا میکنی و بعد عمل ضرب رو روی اون شبیه سازی کردی که کاملا درسته فقط همون اول کدت کد: const int size=11500; کد: Pleas Enter number : 2000 |
RE: فاکتوریل N - diiimah - 20 فروردین ۱۳۹۳ ۰۸:۰۱ ب.ظ
از دوستان عزیز ممنونم ![]() ![]() فقط یه چیزی نرم افزار تحت ویندوزشو برای ۷ ۶۴ بیت کسی نداره من خودم تحت داسشو دارم ولی کار کردن باهاش خسته کنندست ممنون. |
RE: فاکتوریل N - bargozideh - 21 فروردین ۱۳۹۳ ۱۲:۰۸ ق.ظ
(۲۰ فروردین ۱۳۹۳ ۰۸:۰۱ ب.ظ)diiimah نوشته شده توسط: از دوستان عزیز ممنونمفدایی داری ![]() دادا میتونی از netbeans 12 استفاده کنی من خودم با همون اجراش کردم رو وینئوز ۸/۱ ۶۴ بیت |
RE: فاکتوریل N - diiimah - 22 فروردین ۱۳۹۳ ۰۵:۱۹ ب.ظ
با سلام دوباره . اگه الگوریتم نویسیتون خوبه میشه الگوریتم همین برنامه رو برام بنویسید چون خودم تو این زمینه ضعیفم البته به صورت فارسیم باشه مشکلی نیست . |
RE: فاکتوریل N - diiimah - 24 فروردین ۱۳۹۳ ۱۱:۲۴ ق.ظ
کسی بلد نبود ؟ ![]() |