فاکتوریل تا ارقام بالا در زبان سی

soheilweb

Active Member
سلام.
آقا من واقعا شرمنده ام ولی یه سوال داشتم از برنامه نویسی C ممکنه بهم جواب بدین.
میخوام که یه برنامه ای باشه عدد طبیعی (n) رو بگیره و فاکتوریل اونو تحویل بده. (برنامه باید بتونه تا 500 فاکتوریل رو حساب کنه)
من فقط میدونم که باید از ارایه ها استفاده کرد.
جان من (تورو خدا) بهم کدش رو بدین - خیلی زود تا فردا میخوامش.
عاجزانه خواهش میکنم بهم کدش رو بدین.
یه دنیا ممنون میشم.
 

soheilweb

Active Member
ممنونم دوست عزیزم.
من تا 500 فاکتوریل میخوام.
خواهش میکنم کدش رو بهم بدین اگه براتون ممکنه.
باور کن خیلی لازم دارم.
عاجزانه خواهش میکنم.
 

mehran_j

Member
خوب دوست عزيز ..خودت هم يه كم تلاش كن ....به راحتي ميتوني براي 50 فاكتوريل تغيرش بدي
 

saalek110

Well-Known Member
کد:
#include <iostream>
#include <conio.h>
#include <iomanip>

unsigned long factorial( unsigned long ); // function prototype

int main()
{
// Loop 10 times. During each iteration, calculate
// factorial( i ) and display result.
for ( int i = 0; i <= 30; i++ )
cout << setw( 2 ) << i << "! = "
<< factorial( i ) << endl;

getch();
return 0; // indicates successful termination

} // end main

// recursive definition of function factorial
unsigned long factorial( unsigned long number )
{
// base case
if ( number <= 1 ) 
return 1;

// recursive step
else 
return number * factorial( number - 1 );

} // end function factorial

من برنامه بالا را توضيح مي دهم ، شايد بدردتون بخوره. البته شايد هم بلد باشيد.
در برنامه بالا ما بجاي اينكه بياييم ضربها را بنويسيم ، يك تابع نوشتيم كه عدد را با قبلي ضرب مي كنه و اين تابع خودش را صدا مي كنه و همين طور ضربها تا عدد يك ادامه ميابد.
خيلي برنامه ساده اي است .
فقط شما بايستي نوع متغير را ، از long به انواع ديگه تبديل كني. مثلا long double ، تا اعدااد بزرگتر جا بشه.
من راستش با اعداد خيلي بزرگ كار نكردم و وقت مي بره تا باهاشون كنار بيام. ولي با كمي ور رفتن حل ميشه.
.
نويسنده برنامه : اين کد تا فاکتوريل عدد 30 رو محاسبه ميکنه شما ميتونيد برای اعداد بيشتر يا برای اينکه از کاربر ورودی بگيره اين کد رو تغيير بديد.
موفق باشيد.

شما كار كن اگر مشكلي بود بگيد . من و بقيه كمكتون مي كنيم.
.
 

saalek110

Well-Known Member
unsigned
هم براي اينه كه منفي ها حذف بشه و فقط مثبت ها باقي بمونه تا گنجايش متغير ما دو برابر بشه.
.
 
شما اگر یک ذره توجه میکردی و زیاد عجله نمیکردی میدیدی که C برای خودش، تو این سایت یک انجمن داره که برنامه های زیادی در اونجا میتونید پیدا کنید. لطفا بیشتر دقت کنید.
 

sahama

Member
فکر می کنم 500 فاکتوریل از 1000 رقم هم بیشتر بشه و من هیچ نوع داده ای رو سراغ ندارم که بتونه اون دو جا بده

به نظر من بهترین راه برای شما اینه که عدد رو در حافظه به صورت یه رشته از کاراکتر ها در نظر بگیرید فکر میکنم اینجوری مسئله حل بشه
برای این کار میتونید ار تخصیص حافظه پویا با دستور new هم استفاده کنید که کارتونو راحت تر میکنه!
 

MnavidM

Active Member
ranjbar_2 گفت:
فايل شامل سورسي است كه به روش متني عمل ضرب انجام ميده
سلام.

ممنون از برنامه ای که گذاشتید .

لطفا برنامه خودتون رو در اینجا هم معرفی کنید .

اون تایپک مخصوص معرفی پروژه ها می باشد .

موفق باشی.
نوید.
 

جدیدترین ارسال ها

بالا