امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
فاکتوریل اعداد
نویسنده پیام
aleas آفلاین
کاربر با تجربه
****

ارسال‌ها: 911
موضوع‌ها: 183
تاریخ عضویت: مهر ۱۳۸۹

تشکرها : 2946
( 2592 تشکر در 1223 ارسال )
ارسال: #1
فاکتوریل اعداد
سلام خسته نباشید کسی سورسی داره که بتواند فاکتوریل اعداد بزرگ مانند !20 را محاسبه کنه؟به زبان سی

ما کرم درختان پر باریم در حسرت سیبی سرخ و چه بس دور است بین ما ، دستانمان را ميگويم و سيب سرخ حوا
۰۵-خرداد-۱۳۹۰, ۱۹:۳۹:۵۰
وب سایت ارسال‌ها
پاسخ
sjh آفلاین
كاربر دو ستاره
**

ارسال‌ها: 77
موضوع‌ها: 22
تاریخ عضویت: اردیبهشت ۱۳۹۱

تشکرها : 150
( 99 تشکر در 40 ارسال )
ارسال: #2
RE: فاکتوریل اعداد
سلام دوست عزیز
خیر نمی شه زبان c فکر کنم فقط تا فاکتوریل 16 رو حساب می کنه
۱۷-اردیبهشت-۱۳۹۱, ۱۰:۵۸:۲۵
ارسال‌ها
پاسخ
mhpc2009 آفلاین
كاربر دو ستاره
**

ارسال‌ها: 206
موضوع‌ها: 29
تاریخ عضویت: مهر ۱۳۸۹

تشکرها : 801
( 579 تشکر در 198 ارسال )
ارسال: #3
RE: فاکتوریل اعداد
(۱۷-اردیبهشت-۱۳۹۱, ۱۰:۵۸:۲۵)sjh نوشته است: سلام دوست عزیز
خیر نمی شه زبان c فکر کنم فقط تا فاکتوریل 16 رو حساب می کنه
سلام دوست عزیز خواستم جواب ندم چون پست قدیمی بود ولی اینو رو چه اساسی میگی نمیشه از شدن میشه تازه با همون الگوریتم ساده تو visual studio اگه از نوع long double تعریف کنی !33 فاکتوریل حساب می کنهWhistle
با یه سری تکنیک ها هم میشه رنجشو افزایش داد مثلا از آرایه یا اشاره گر یا رشته ها استفاده کنی سورس زیر نگاش کن
کد:
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// GROUP 12
// Group members:Aniqa Hayee(091105), Nimra Mustafa(091133), Javeria Raja(091120)
//
// BS(CS)-Semester I-Section B
// AIR UNIVERSITY<ISLAMABAD,PAKISTAN>
//
//Computer Programming
//Project:To calculate the factorial of a large number
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#include <iostream>
using namespace std;
void main()
{
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
long k;
cout<<"Enter a number whose factorial needs to be calculated:";
cin>>k;
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////code for numbers which are less than 33 and greater than 3///////////////////////////////////////////////////////////
if (k<=33)
{
double long fact=1;
fact=1;
for(int b=k;b>=1;b--)
{
fact=fact*b;
}
cout<<"The factorial of "<<k<<" is "<<fact<<endl;
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////code for numbers which are greater than 33 ///////////////////////////////////////////////////////////
else
{
int numArr[10000];
int total,rem=0,count; //rem use to save remainder of division(Carry Number).
register int i; //register will enhance performance by minimizing access time
//int i;
for(i=0;i<10000;i++)
numArr[i]=0; //set all array on NULL.
numArr[10000]=1; //start from end of array.
for(count=2;count<=k;count++)
{
while(i>0)
{
total=numArr[i]*count+rem; //rem will add the carry number to the next array digit that is multiplied to the count
rem=0;
if(total>9)
{
numArr[i]=total%10;
rem=total/10;
}
else
{
numArr[i]=total; //numArr[i] is being accessed in this for loop because we have made i as register which means the memory is allocated
}
i--;
}
rem=0;
total=0;
i=10000;
}
cout<<"The factorial of "<<k<<" is ";
for(i=0;i<10000;i++)
{
if(numArr[i]!=0 || count==1)
{
cout<<numArr[i];
count=1;
}
}
cout<<endl;
}
}

یه خطای زمان اجرا میده واسه اعداد بزرگتر از !33 فاکتوریل ولی با ماشین حساب ویندوز که چک کردم دقتش تقریبا معادل اونهWhistle
(آخرین ویرایش در این ارسال: ۱۷-اردیبهشت-۱۳۹۱, ۱۵:۰۲:۳۳، توسط mhpc2009.)
۱۷-اردیبهشت-۱۳۹۱, ۱۴:۵۲:۵۵
ارسال‌ها
پاسخ


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  [سوال] فاکتوریل؟ megatron 1 2,158 ۰۶-دى-۱۳۹۲, ۱۹:۴۴:۴۹
آخرین ارسال: megatron
  طراحي اگوريتم (ضرب اعداد بزرگ) جواب ميخوام arazinqizi 4 8,706 ۰۳-آذر-۱۳۹۱, ۱۷:۰۸:۲۱
آخرین ارسال: akramn
  اعداد مرکب بین دو بازه snoopboy 2 3,654 ۱۳-مرداد-۱۳۹۱, ۲۲:۴۸:۳۷
آخرین ارسال: babyy
Exclamation نوشتن اعداد در 7 ستون یه مشکل خیلی ساده در C St4r-S4t 2 4,434 ۱۷-اردیبهشت-۱۳۹۱, ۱۰:۵۴:۰۶
آخرین ارسال: sjh
Question [سوال] مشکل با چاپ اعداد متقارن چهار رقمی ؟ saeedvir 2 3,600 ۰۷-آبان-۱۳۹۰, ۰۱:۳۹:۱۵
آخرین ارسال: mhpc2009
  الگوریتم برنامه فاکتوریل رقم های بزرگ amir-yeketaz 15 20,742 ۱۸-تير-۱۳۹۰, ۲۰:۳۵:۲۵
آخرین ارسال: roteil
  فاکتوریل sara.s 6 10,032 ۲۸-شهریور-۱۳۸۸, ۲۳:۱۶:۰۴
آخرین ارسال: excelable
  کلاس اعداد مختلط وبارگزاری اضافه اپراتورهای جمع وتفريق adameh_bahal 9 17,822 ۱۵-خرداد-۱۳۸۸, ۲۰:۳۷:۴۴
آخرین ارسال: محمد حسینی
Question تعداد اعداد فاقد رقم صفر ! dunker 2 2,940 ۰۹-خرداد-۱۳۸۸, ۰۱:۰۹:۳۶
آخرین ارسال: محمد حسینی
  تولید اعداد راندوم غیر تکراری Iron_Fist 5 13,861 ۲۶-مرداد-۱۳۸۵, ۲۳:۱۷:۲۱
آخرین ارسال: Programmer

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 2 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS