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

نام تاپیک: کمک در رابطه با تابع فاکتوریل

  1. #1
    کاربر دائمی آواتار mas'oud
    تاریخ عضویت
    آذر 1388
    محل زندگی
    تهران
    پست
    120

    کمک در رابطه با تابع فاکتوریل

    سلام
    من یک برنامه ماشین حساب مهندسی دارم میسازم که یکی از توابع آن !n است.
    ولی برنامه از عدد مشخصی به بالا مقدار صفر را به جای جواب در تکست باکس نمایش میدهد.مثلا فاکتوریل 120 رو صفر نشون میده اما اعدادکوچکتر مثل 5و6و10 را درست محاسبه میکند
    لطفا مشکل را بگویید.

    private void btnFACT_Click(object sender, EventArgs e)
    {
    int f = 1;
    if (textBox1.Text.Contains(".") || Convert.ToInt32(textBox1.Text)<0)
    {
    textBox1.Clear();
    MessageBox.Show("Only +Integer Number","Error",
    MessageBoxButtons.OK,MessageBoxIcon.Error);
    }
    else
    {
    int k = Convert.ToInt32(textBox1.Text);
    for (; k > 0; k--)
    {
    f = f * k;
    }
    textBox1.Text = f.ToString();
    }
    }

  2. #2

    نقل قول: کمک در رابطه با تابع فاکتوریل

    به این علت 0 نشان میدهد چون فاکتوریل عدد 120 یک عدد بسیار بزرگ میشود.

  3. #3
    کاربر دائمی آواتار FastCode
    تاریخ عضویت
    تیر 1388
    محل زندگی
    /dev/null
    پست
    3,486

    نقل قول: کمک در رابطه با تابع فاکتوریل

    علت صفر شدن این است که عدد حاصل در یک لحظه برابر ۰ میشه که علت اون هم unchecked بودن C#‎ و overflow هستش.

    دقیقا روی 33 این اتفاق میافته:

    int n;
    for(int i = 32;i!=50;i++)
    {
    n = 1;
    for(int j = i;j != 0; j--)
    {
    n *= j;
    if(n==0)
    {
    Console.Write(i);
    Console.Write(":");
    Console.WriteLine(j);
    break;
    }
    }
    }

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

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