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

نام تاپیک: فاکتوريل عدد 170

  1. #1
    کاربر تازه وارد آواتار goleleila
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    تهران
    پست
    39

    Smile فاکتوريل عدد 170

    سلام دوستان
    فاکتوريل عدد 170 رو با زبان C++‎ چه طوري بايد بنويسم؟

  2. #2

    Question نقل قول: فاکتوريل عدد 170

    <include <iostream.h#
    <include <conio.h#
    ()void main
    }
    ;int number,result=1
    ;cin >> number
    (++for(int i=1; i<=number; i
    }
    ;result *= i
    {
    ;cout << result
    ;()getch
    {

  3. #3

    نقل قول: فاکتوريل عدد 170

    int فقط تا سی و دو هزار و خورده ای رو در خود نگه می دارد و برای فاکتوریل اعداد بزرگ به کار نمی آید در این مورد ++C دارای تابعی می باشد که نتیجه را به کمک نماد علمی نشان می دهد البته این تابه هم دارای محدودیت هایی است و کوزه شکسته ای هست که میشه بعضی وقتا ازش آب خورد.بهترین راه برای این ک.نه موارد نوشتن یه برنامه هست که با وکتورها کار کنه و این جور نتایج خیلی بزرگ رو به کمک وکتور حساب و نشان دهد یا این که از آرایه ای از بایت ها استفاده کند و عدد را در آرایه ای از بایت ها قرار دهد و محاسبه نماید و نشان دهد

  4. #4

    Question نقل قول: فاکتوريل عدد 170

    سلام
    من اين تكه برنامه رو به طور كلي نوشتم و هدفم اشنايي با فاكتوريل اعداد از نوع int بود.

  5. #5
    کاربر دائمی آواتار saied_genius
    تاریخ عضویت
    آبان 1386
    محل زندگی
    IRAN فعلاً ...
    پست
    595

    نقل قول: فاکتوريل عدد 170

    ::نكته::

    بهترين راه براي نوشتن برنامه فاكتوريل (در هر زباني) استفاده از يك تابع برگشتي است.

    (از داخل خود تابع ، خود تابع را صدا كند)

    موفق باشيد.

  6. #6

    نقل قول: فاکتوريل عدد 170

    از GMP یا BigInt استفاده کن
    We work in the dark, we do what we can, we give what we have.
    Our doubt is our passion and our passion is our task.
    The rest is the madness of art

  7. #7

    نقل قول: فاکتوريل عدد 170

    سلام
    اگر فاکتوریل این عدد رو به صورت دقیق می خواید که باید از اعداد صحیح بسیار بزرگ استفاده کنید. هیچ متغیری در سی استاندارد یا سی پلاس پلاس چنین اعداد بزرگی رو پشتیبانی نمی کنن. برای چنین کاری باید از کلاسهای ویژه طراحی شده برای کار با اعداد بزرگ استفاده کنید.
    اما اگر هدف شما تخمین مقدار فاکتوریل باشه، روابط ریاضی ساده ای برای اینکار وجود داره.

  8. #8

    نقل قول: فاکتوريل عدد 170

    سلام
    برنامهاي كه عددnرابگيردوفاكتوريل حساب كند؟

  9. #9
    کاربر تازه وارد آواتار goleleila
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    تهران
    پست
    39

    نقل قول: فاکتوريل عدد 170

    مشکل دقيقاً بر سر محدوديت در متغيرهاست
    چون هيچ متغيري نمي تونه اين جوابهاي n رقمي رو ذخيره کنه.راهکارش استفاده از آرايه ها بود که خودم تو اينترنت پيدا کردم.
    با borland هم تستش کردم کاملاً درسته.
    اگه خوشتون اومد تشکر فراموش نشه!!!

    اين هم سورس برنامه :

    #include<iostream.h>
    #include<conio.h>
    int main()
    {
    clrscr();
    int a[1500];
    int i,f,c=0;
    long int n;
    cout<<"enter the number"<<"\n";
    cin>>n;
    a[0]=0;
    for (i = 2; i < 1500; i++)
    a[i] = 0;
    a[1] = 1;
    for (f = 1; f <= n; f++)
    {
    for (i = 1; i <1500; i++)
    a[i] = f * a[i];
    for (i = 1; i <1500; i++)
    {
    if (a[i] > 9)
    {
    a[i + 1] = a[i + 1] + a[i] / 10;
    a[i] = a[i] % 10;
    }
    }
    }
    for (i =1499 ; i >= 1; i--)
    {
    if(a[i]!=0)
    {
    c=i;
    break;
    }
    }
    cout<<"the fact of this number is:";
    for(i=c;i>=1;i--)
    cout<<a[i];
    getch();
    return 0;
    }

  10. #10

    نقل قول: فاکتوريل عدد 170

    مشکل دقيقاً بر سر محدوديت در متغيرهاست
    چون هيچ متغيري نمي تونه اين جوابهاي n رقمي رو ذخيره کنه.راهکارش استفاده از آرايه ها بود که خودم تو اينترنت پيدا کردم.
    با borland هم تستش کردم کاملاً درسته.
    با vector هم میشه

  11. #11

    نقل قول: فاکتوريل عدد 170

    [quote=hasanaminabade4817;664310]سلام
    برنامهاي كه عددnرابگيردوفاكتوريل حساب كند؟[/quote
    Fact(int Num)
    {
    static int Answer = 0;
    Fact(0) = 1;
    Fact(1) = 1;
    Answer =Answer * Fact(Num - 1);
    }

    main()
    {
    int Num;
    cin>>Num;
    Fact(Num);
    }

    البته این روش حافظه ی زیادی مصرف می کنه.

  12. #12

    نقل قول: فاکتوريل عدد 170

    چون شما از int برای ذخیره ی حاصل استفاده می کنید برای فاکتوریل اعداد بزرگ جواب نمی دهد

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

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