نمایش نتایج 1 تا 14 از 14

نام تاپیک: فاکتوریل اعداد بزرگتر از 50

  1. #1
    کاربر تازه وارد آواتار zer0cool
    تاریخ عضویت
    آبان 1386
    محل زندگی
    teh
    پست
    43

    فاکتوریل اعداد بزرگتر از 50


    من میخوام فاکتوریل اعداد بزرگتر از پنجاه رو بدست بیارم با توجه به بزرگ بودن عدد خروجی آیا باید اونو داخل آرایه قرار بدم اگر حدسم درسته چطور باید یک عدد بزرگ رو در یک آرایه قرار بدم. اگر کسی راهنمایی بکنه یا آدرس جایی رو برای مطالعه در اختیارم بذاره ممنون میشم.

  2. #2
    کاربر دائمی
    تاریخ عضویت
    اسفند 1385
    محل زندگی
    تهران
    پست
    1,486
    تو همین بخش و بخش ساختمان داده ها یه جست وجویی بکن، یه چیزایی هست.
    تو isp هم که کلا هر جایی که توش فاکتوریل بوده فیل *تر شده برای شما رو نمیدونم.

  3. #3

  4. #4
    برو تو وبلاگم بدون آرایه حساب میکنه : http://mehrdad.znuclub.com

  5. #5
    سلام دوست عزیز راستش من نمیدونم چطوری شما با آرایه فاکتوریل اعداد رو حساب میکنید من خودم یه جور دیگه میرم و فقط با یک حلقه کار میکنه البته توی C++‎ برای اعداد بزرگ جواب نمیده چون محدوده متغیر int خیلی کمه البته توی پاسکال میتونم اینکارو بکنم که برای اعداد خیلی بزرگ هم جواب بده ولی تا حالا اینکارو نکردم چون توی پاسکال خیلی راحت میشه محدوده اعداد و نحوه نشون دادنشون رو تنظیم کرد ولی در کل اگر بخوای که فاکتوریل اعداد بزرگتر 50 رو بگیری میتونی از javascript استفاده کنی که متغیرهاش variant هستن و راحت میشه باهاش کار کرد و محدوده اش خیلی بزرگه کدش هم همین الان نوشتم اینجوری میشه (تا فاکتوریل 170 رو حساب میکنه)

    <html>
    <head>
    <title>Factorial - Author : Mr.Olympia</title>
    <script language="javascript" type="text/javascript">
    function Start()
    {
    var number = prompt("Enter a number : ","");
    var answer = 1;
    for (var i=number;i>=1;i--)
    {
    answer = answer * i;
    }
    alert("Factorial Of "+number+" Is "+answer);
    }
    </script>
    </head>
    <body onload="Start()">
    </body>
    </html>


    موفق باشی

  6. #6
    سلام من همین الان با C++‎ یک برنامه نوشتم که فاکتوریل اعداد رو تا عدد 1754 میتونه حساب کنه با استفاده از همون الگوریتم قبلی فقط از یه نوع متغیر با محدوده خیلی بزرگ long double استفاده کردم اینم از کدش :

    // Author : Morteza Sherafati (Xerxes)
    #include <iostream.h>
    #include <conio.h>

    void main ()
    {
    clrscr();
    long int number;
    long double answer = 1;
    cout<<"Enter a number : ";
    cin>>number;
    for (int i=number;i>=1;i--)
    {
    answer *= i;
    }
    cout<<"\nFactorial Of "<<number<<" Is "<<answer;
    getch();
    }


    حالی به حولی

  7. #7
    کاربر دائمی آواتار ICEMAN
    تاریخ عضویت
    تیر 1383
    محل زندگی
    Hyper-V
    پست
    476
    برای جمع و ضرب و تفریق و تقسیم من یه سری کد گذاشتم میتونی با ضربش راحت روی فاکتوریل کار کنی
    https://barnamenevis.org/showthread.php?t=90328

  8. #8
    سلام
    من این کد رو مقداری کوتاهتر نوشتم:

    long double fact(int n)
    {
    int i;
    long double f;
    i=1;
    f=1;
    while (i<=n) {
    f = f*i ;
    i = i+1;
    }
    return f ;
    }


    long double تا 170 رو جا می گیره

  9. #9
    // Factorial Calculator By Mehrdad Jamali 86442125.
    // http://mehrdad.znuclub.com
    // jamali.mehrdad@gmail.com
    # include <stdio.h>
    # include <conio.h>
    # include <math.h>
    float getex(double);
    main()
    {
    int i,n;
    double s=0.0,a,b;
    clrscr();
    printf("*** Factorial Calculator *** \n.:: Mehrdad Jamali ::. Stu#:86442125 \n--------------------------------\n");
    printf("Please enter N to Calculate N! :");
    scanf("%d",&n);
    if (n>=0)
    {
    printf("\nPlease wait , calculating ...\n");
    // calculating s = Siq (i=1 to n) [ Log i ]
    for (i=1;i<=n;i++)
    s+=log10(i);
    b = floor(s);
    // End of Calculating S
    a = getex(s-b);
    printf("\n\n\n Result: %d! ~= %5.4f e+%d\n\n-----------\n",n,a,(int)(b));
    printf("[[[ Please enter any key to exit ... ]]]");
    }

    else
    {
    clrscr();
    printf("Invalid arrgument found ,\n [[[ please enter any key to exit ... ]]]");
    }
    getch();

    }
    float getex(double p)
    {
    float r;
    r = pow(10,p);
    return r;
    }



  10. #10
    با استفاده از الگوریتم فوق میتونید خیلی راحت فاکتوریل اعدا بزرگ رو براحتی محاسبه کنید ...

  11. #11
    با استفاده از الگوریتم فوق میتونید خیلی راحت فاکتوریل اعدا بزرگ رو براحتی محاسبه کنید ...
    ببخشید میشه بگید تا چقدر رو میتونه فاکتوریل بگیره ؟؟

  12. #12

    نقل قول: فاکتوریل اعداد بزرگتر از 50

    نقل قول نوشته شده توسط Mr.Olympia مشاهده تاپیک
    ببخشید میشه بگید تا چقدر رو میتونه فاکتوریل بگیره ؟؟
    سلام من مهرداد جمالی هستم ، در این مورد حتی خودم هم نمیتونم نظر بدم چون کار شبیه سازی ریاضی هست (استفاده از سری ها برای به نتیجه رسیدن) .

    برای مثال فاکتوریل عدد 56786 رو گرفتم تا با قدرت این الگوریتم آشنا بشید:
    *** Factorial Calculator ***
    .:: Mehrdad Jamali ::. Stu#:86442125
    --------------------------------
    Please enter N to Calculate N! :56786
    Please wait , calculating ...

    Result: 56786! ~= 1.8836 e+245315
    -----------
    [[[ Please enter any key to exit ... ]]]

  13. #13
    کاربر دائمی آواتار mahmood3d
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    همه جای ایران سرای من است
    پست
    334

    Smile نقل قول: فاکتوریل اعداد بزرگتر از 50

    نقل قول نوشته شده توسط Mr.Olympia مشاهده تاپیک
    سلام من همین الان با C++‎ یک برنامه نوشتم که فاکتوریل اعداد رو تا عدد 1754 میتونه حساب کنه با استفاده از همون الگوریتم قبلی فقط از یه نوع متغیر با محدوده خیلی بزرگ long double استفاده کردم اینم از کدش :

    // Author : Morteza Sherafati (Xerxes)
    #include <iostream.h>
    #include <conio.h>

    void main ()
    {
    clrscr();
    long int number;
    long double answer = 1;
    cout<<"Enter a number : ";
    cin>>number;
    for (int i=number;i>=1;i--)
    {
    answer *= i;
    }
    cout<<"\nFactorial Of "<<number<<" Is "<<answer;
    getch();
    }
    حالی به حولی
    برنامه رو نوشتم و خواستم براي شما تو انجمن قرار بدم كه نوشته Mr.Olympia رو ديدم و ديگه دوباره ننوشتم .
    همانطور كه اشاره شد متغيرتون رو از نوع long double بگيريد تا بتونيد تا فاكتوريل عدد 1754 رو محاسبه كنيد .

  14. #14
    کاربر دائمی آواتار mahmood3d
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    همه جای ایران سرای من است
    پست
    334

    نقل قول: فاکتوریل اعداد بزرگتر از 50

    نقل قول نوشته شده توسط enjmehrdad مشاهده تاپیک
    سلام من مهرداد جمالی هستم ، در این مورد حتی خودم هم نمیتونم نظر بدم چون کار شبیه سازی ریاضی هست (استفاده از سری ها برای به نتیجه رسیدن) .

    برای مثال فاکتوریل عدد 56786 رو گرفتم تا با قدرت این الگوریتم آشنا بشید:
    *** Factorial Calculator ***
    .:: Mehrdad Jamali ::. Stu#:86442125
    --------------------------------
    Please enter N to Calculate N! :56786
    Please wait , calculating ...

    Result: 56786! ~= 1.8836 e+245315
    -----------
    [[[ Please enter any key to exit ... ]]]
    دوست عزيز مقدار 1.8836 e+245315 بايد توي يك متغير قرار بگيرد و توي cpp نوع متغيري نداريم كه اين عدد رو ساپورت كنه .

قوانین ایجاد تاپیک در تالار

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