PDA

View Full Version : برنامه بدست آوردن فاکتوریل یک عدد بزرگ



سحر
چهارشنبه 21 خرداد 1382, 14:09 عصر
سلام
من می خوام یه برنامه بنویسم که بتونه فاکتوریل یه عدد بزرگ رو هم بدست بیارم چون من الان و با توجه به اینکه اگه عددم رو از نوع long int انتخاب کنم تا اعداد زیر 20 رو فقط جواب میده . البته نظر خودم اینه که یه ارایه تعریف کنم و یک عدد صحیح که در ابتدا مقدار عدد برابر 2و خانه اخر ارایه برابر 1 باشه و از ضرب یه ارایه در یک عدد صحیح استفاده کنم که با استفاده از یه شمارنده در هر بار یکی به عدد صحیح اضافه میشه تا به عددی که کاربر وارد کرده برسه .
این عدد میخوام هر عدد دلخواهی و یا حداقل بزرگترین عددی رو که میشه براش این مقدار رو بدست اورد باشه .
اگه کسی هست که قبلآ این برنامه رو نوشته باشه خواهش میکنم کدهاش رو برا منم بزاره تا از اونها استفاده کنم و یا اینکه حداقل قطعه کد ضرب اون عدد در ارایه رو برام بنویسیه اخه من هر چی مینویسم درست جواب نمیده . اینم بگم که من تازه کار هستم و خیلی سی رو به صورت پیشرفته بلد نیستم .

Rambod
سه شنبه 24 تیر 1382, 15:30 عصر
من فکر نمی کنم بشه همچین کاری کرد.

نستوه
پنج شنبه 26 تیر 1382, 02:37 صبح
سلام
آقا رامبد کار نشد نداره.....
من قبلا ( به قول مرحوم اینپراز زمان فنچولی ) یعنی اون موقه که زبان سی داشتیم این برنامه رو نوشتم . منتها الان اصلا حالشو ندارم که دوباره حلقه هاشو بنویسم.
فقط باید بگم میتونی از آرایه استفاده کنی.
با دو سه تا حلقه مناسب میتونی این کارو انجام بدی.البته حتی میتونی پا رو از اینم فرا تر بذاری و حتی عدد اول رو هم توی آرایه بذاری. فقط حواست باشه آرایه دوم ( یعنی آرایه ای که باید جواب رو ذخیره کنه باید بزرگ باشه). بعد باید با حلقه دونه دونه ضرب هارو انجام بدی و ده بر یک هارو (همون کری) به عدد بعدی اضافه کنی و الی آخر............
البته میگم حوصله ندارم دوباره حدود حلقه ها و شمارنده های آرایه رو حساب کتاب کنم.

ilovelinux
دوشنبه 10 شهریور 1382, 14:02 عصر
راس میگه یکی از روش هاش ساختن متغیره (البته متغیر نیست فقط مکانی برای ذخیره ایت

C#Developer
دوشنبه 03 آذر 1382, 22:00 عصر
سلام،چرا نشه؟
پروژه آخر ترم پاسکال من بود،باهاش 50000 فاکتوریل رو هم محاسبه کردم ،بگیرش ولی روش حسابی فکر کن تا منطقشو بگیری،ما عدد رو به جای متغیر در یه آرایه ذخیره می کنیم.!
دعای ما یادت نره! :oops:

C#Developer
دوشنبه 03 آذر 1382, 22:02 عصر
you can easily convert it to ++C
chears

30yavash
جمعه 21 آذر 1382, 11:05 صبح
اگر بخوای فاکتوریل یک عدد بزرگ رو حساب کنی یک راه دیگرش اینه که:
عددت رو می‌ذاری توی فرمول استرلینگ بعد اگر از ‍C استفاده می کنی جواب بدست اومده از فرمول استرلینگ رو که عدد خیلی بزرگی باید باشه بذار توی یک متغییر دینامیک.این جوری سرعت برنامت بیشتر می شه ولی ایرادش اینه که جواب بدست اومده دقیق نیست.
تازه اگر یه ذره زرنگ باشی می تونی حتی از فرمول استرلینگ هم استفاده نکنی.

badkids
سه شنبه 09 بهمن 1386, 23:09 عصر
سلام،چرا نشه؟
پروژه آخر ترم پاسکال من بود،باهاش 50000 فاکتوریل رو هم محاسبه کردم ،بگیرش ولی روش حسابی فکر کن تا منطقشو بگیری،ما عدد رو به جای متغیر در یه آرایه ذخیره می کنیم.!
دعای ما یادت نره! :oops:

چیو باید بگیریم ؟!

Nima_NF
سه شنبه 09 بهمن 1386, 23:23 عصر
این پست برای 4 سال قبل هست ، چند تا پست پایین تر بحث جدیدی دوباره ایجاد شده که می توانستید همانجا پیگیری کنی و یا تاپیک جدیدی باز کنید ، نیاز نبود این پست قدیمی و بی نتیجه را دوباره به جریان بیاندازید.