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

نام تاپیک: استفاده از آرایه ها در توابع برگشتی...

  1. #1

    استفاده از آرایه ها در توابع برگشتی...

    چطور میشه از یک سری اعداد که با آرایه دریافت شدن با استفاده از یک تابع برگشتی به طور مثال حاصل ضربشونو حساب کرد...

  2. #2
    کاربر دائمی آواتار wolf_majid
    تاریخ عضویت
    آذر 1387
    محل زندگی
    اصفهان
    پست
    534

    نقل قول: استفاده از آرایه ها در توابع برگشتی...

    آرایه را با مکان در حال خواندنش به ورودی تابع میدی
    مثال :
     private long mul(int[] array, int loc = 0)
    {
    if (loc >= array.Length || loc < 0)
    {
    //یک پیغتم مناسب بده و از متد خارج شو
    }
    else if (loc == array.Length-1)
    return array[loc];

    return array[loc] * mul(array, ++loc);

    }
    آخرین ویرایش به وسیله wolf_majid : پنج شنبه 26 آبان 1390 در 14:36 عصر دلیل: نشد دستی بنویسم :D

  3. #3

    نقل قول: استفاده از آرایه ها در توابع برگشتی...

    کد HTML:
    [LTR_INLINE][QUOTE]static void Main(string[] args)
            {
                int n = Convert.ToInt32(Console.ReadLine());
                int[] a = new int[n];
    
                for (int i = 0; i < n; i++)
                    a[i] = Convert.ToInt32(Console.ReadLine());
                int m=0;
                long z = zarb(a,m);
                Console.WriteLine(z.ToString());
                
                Console.ReadKey();
               
            }
    
            private static long zarb(int [] a, int m)
            {
                if (m < 0 || m > a.Length)
                    return 0;   
                 return  a[m]* zarb(a,++m);
            }
    [/QUOTE]
    [/LTR_INLINE]
    وقتی نوشتم اینجور شده...نتونستم خوب درک کنم اینو... از ریترن آخرشم خطا میگیره...

  4. #4
    کاربر دائمی آواتار wolf_majid
    تاریخ عضویت
    آذر 1387
    محل زندگی
    اصفهان
    پست
    534

    نقل قول: استفاده از آرایه ها در توابع برگشتی...

    static void Main(string[] args)
    {
    int n = Convert.ToInt32(Console.ReadLine());
    int[] a = new int[n];

    for (int i = 0; i < n; i++)
    a[i] = Convert.ToInt32(Console.ReadLine());
    int m = 0;
    long z = zarb(a, m);
    Console.WriteLine(z.ToString());

    Console.ReadKey();
    }
    //پیش فرض برای ام گذاشتم که دیگه نیازی به مقداردهی پارامتر دوم نباشد
    private static long zarb(int[] a, int m=0)
    {
    //اولا" چرا صفر برگردونه در صورتیکه خطاست
    // بعدش اشتباه از من بود به این قسمت نیازی نیست چون این تابع توسط
    //برنامه نویس صدا زده می شه نیازی به این ایف ندارد
    /*
    if (m < 0 || m > a.Length)
    return 0;
    */

    // ما می خواهیم این ضرب تا زمانی ادامه پیدا کند
    //که به آخر آرایه رسیدیم پس
    //صدا زدن آرایه را همینجا با این شرط متوقف می کنیم
    if (m == a.Length - 1)
    return a[m];
    return a[m] * zarb(a, ++m);
    }

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

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