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

نام تاپیک: محاسبه مجموع سری اعداد ، بدون استفاده از حلقه

  1. #1
    کاربر دائمی آواتار BOB
    تاریخ عضویت
    خرداد 1383
    محل زندگی
    http://www.mshams.ir
    پست
    450

    محاسبه مجموع سری اعداد ، بدون استفاده از حلقه

    سلام

    چند لحظه فکر کردن به این سوال ، برای رفع خستگی بد نیست.
    الگوریتمی بنویسید که مجموع اعداد بین دو متغیر n و m را ، بدون استفاده از حلقه یا تکرار فرامین ، محاسبه کند. (n,m>0)
    لطفا از جزوه‌های آمار و ریاضی استفاده نکنید چون این سوال واقعا آسونه.

    موفق باشید

  2. #2
    int f(int m,int n)
    {
    if(m==n) return m;
    if(m>n) m^=n^=m^=n;

    return m+f(m+1,n);
    }

    البته من فرض کردم خود m و n هم باید حساب شوند. اگر غیر از اینه از حاصل مقدار m+n رو باید کم کرد

    اما حالا که دوباره فکر کیکنم فکر کنم منظورت این یکی بود:

    if(n>m){
    sum = ( n(n+1) ) / 2 - ( m(m+1) ) / 2
    }else{
    sum = ( m(m+1) ) / 2 - ( n(n+1) ) / 2
    }
    :oops:

  3. #3
    کاربر دائمی آواتار Delphi Skyline
    تاریخ عضویت
    دی 1383
    محل زندگی
    شیراز
    پست
    1,174
    مشتکرم

  4. #4
    کاربر دائمی آواتار BOB
    تاریخ عضویت
    خرداد 1383
    محل زندگی
    http://www.mshams.ir
    پست
    450
    سلام

    جوابش از این هم سادهتره ... و هیچ فرقی هم نمیکنه که m بزرگتر باشه یا n


    (Abs(m-n)-1)*(m+n)/2

  5. #5
    البته از توابع بازگشتی هم میشه استفاده کرد . اونجا دیگه حتی احتیاج به عملگر جمع هم نداریم

  6. #6
    منظورت مثل اونی که من بالا نوشته بودمه؟ (تابع بازگشتی)

  7. #7

    مجموع سری

    این راه هم جواب میده:

    Fun(n,m) {

    Return 1; If(n=1 & m=0)
    else
    ((m-n)+1)*n+ return Fun(1,m-n);
    }

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

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