جاوا

جلسه ۵۹: محاسبه مجموع اعداد ۱ تا n به روش بازگشتی در جاوا

در این جلسه، می آموزید که چگونه مجموع عددهای صحیح را از ۱ تا n با استفاده از شیوه بازگشتی محاسبه کنیم. موارد زیر را بیان خواهیم کرد:

  • جمع اعداد صحیح از ۱ تا n به چه معناست؟
  • علامت گذاری ریاضی عمومی
  • پیاده سازی کد
  • تفسیر کد
  • متد main
  • متد بازگشتی
  • حالت پایه
  • حالت بازگشتی
  • درک از طریق پشته

جمع اعداد صحیح از ۱ تا n به چه معناست؟

اعداد طبیعی اعداد مثبتی هستند که از ۱ شروع می شوند. این اعداد را می توان به صورت زیر نوشت: … ,۱۰ ,۹ , ۸ ,۷ ,۶ ,۵ , ۴ ,۳ ,۲ ,۱ ما می خواهیم برنامه ای بنویسیم که یک عدد خاص را بگیرد و همه اعداد را از ۱ تا آن عدد جمع کند. تصویر زیر مفهوم را برای کمک به شما در درک این مسئله توضیح می دهد.

      مجموع تمام اعداد تا یک عدد خاص برابر است با حاصلجمع آن عدد و مجموع تمام اعداد قبل از آن. این قضیه را به زبان ریاضی به صورت زیر می توان بیان کرد:

= ۵ + \sum_{i=1} ^{4} i

= ۵ + ۴ + \sum_{i=1} ^{3}

= ۵ + ۴ + ۳ + \sum_{i=1} ^{2}

.

.

.

=۵+۴+۳+۲+۱

علامت گذاری ریاضی عمومی

= n + \sum_{i=1} ^{n-1} i

= n + (n-1) + \sum_{i=1} ^{n-2}

.

.

.

= n + (n-1) +(n-2) $ … +۲+۱$

پیاده سازی کد

class SummationClass {

    public static int sumAll(int num) {
        if (num == 1) {
            return num;
        }
        else {
            return num + sumAll(num-1);
        }
    }

    public static void main( String args[] ) {
        int input = 5;
        int sum = sumAll(input);
        System.out.println("The sum of integers from 1 to " + input + " is: " + sum);
    }
}

تفسیر کد

در کد بالا ، متد sumAll یک متد بازگشتی است ، زیرا خود را در بدنه متد فراخوانی می کند. در زیر توضیحات کد بالا آورده شده است:

متد main

  • در داخل متد main ، ما متغیر عدد صحیح input را در خط ۱۳ تعریف کرده ایم. کد مجموع تمام اعداد را تا مقدار ذخیره شده در input محاسبه می کند.
  • متد sumAll در خط ۱۴ فراخوانی می شود و مقدار بازگشتی آن در یک متغیر int به نام sum ذخیره می شود.
  • پس از فراخوانی متد sumAll ، دستور System.out.println در خط ۱۵ پاسخ را چاپ می کند.

متد بازگشتی

  • نوع بازگشتی این متد int است زیرا مجموع تمام اعداد صحیح یک عدد صحیح خواهد بود.
  • این متد عدد صحیح ، num را به عنوان آرگومان ورودی دریافت می کند.

حالت پایه

  • حالت پایه متد در خط ۴ تعریف شده است جایی که در صورت برقرار بودن شرایط num<=1 ، متد خاتمه می یابد و num را برمی گرداند. این به این دلیل است که اگر عدد ۱ باشد ، هیچ عدد صحیحی کمتر از ۱ وجود ندارد و از این رو مجموع ۱ است. همه اعداد از جمله ۰ یا کوچکتر از ۰ بازگردانده می شوند زیرا آنها اعداد صحیح مثبت نیستند.

حالت بازگشتی

  • اگر شرط حالت پایه برقرار نباشد ، متد وارد بلوک else می شود که در آن یک فراخوانی بازگشتی انجام می شود.
  • این فراخوانی بازگشتی با آرگومان num-1 انجام می شود. مقداربدست آمده از فراخوانی sumAll(num-1) به آرگمان ورودی ، num اضافه و نتیجه برگردانده می شود. همانطور که در بالا بحث شد این به این دلیل است که ، مجموع اعداد صحیح تا آن عدد برابر با مجموع آن عدد و حاصلجمع تمام اعداد کوچکتر از آن است.

درک از طریق پشته

    اکنون که محاسبه مجموع اعداد صحیح از ۱ تا n با استفاده از روش بازگشتی را فرا گرفتید ، در جلسه بعدی با استفاده از شیوه بازگشتی یک مسئله ریاضی جالب دیگر یعنی سری فیبوناچی را حل خواهیم کرد.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا