اگه اول فاکتوریل رو کامل درک نکردی اول برو سراغ اون تا اون رو 100 درصد متوجه بشی.این یکم پیچیده تر از اونه.
تعداد رو میشد از اون فرمول هم حساب کرد اما اینجا هر بار که یه مسیر کامل طی میشه یه واحد به count اضافه میشه.به هر حال بدون count میشه :
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
آرگومان های این تابع , اولیش nRight هست که تعداد مسیر هایی هست که مجاز هستیم به سمت راست بریم و nDown هم تعداد مسیر های مجاز به سمت پایین.iCol هم نشون میده که ما الان توی چندمین حرکت قرار داریم(مثلا اگه 2 تا به سمت راست و یکی به پایین رفته باشیم توی سومین حرکت هستیم)
وقتی توی main تابع findWays صدا زده میشه(مثلا برای 4 سطر در 3 ستون), تعداد مسیر های مجاز به سمت راست 3 تا هست و تعداد مسیر های مجاز به سمت پایین 4 تا.(nRight = 3 nDown = 4) و در لحظه ی اول هم ما توی حرکت 0 ام از اولین مسیر قرار داریم پس iCol = 0.
اینجا چک میشه که اگه تعداد مسیر های مجاز به سمت راست و پایین صفر هست به آخر مسیر رسیدیم و چون هر مسیر توی یک خط چاپ میشه اینجا ما یک خط چاپ میکنیم تا مسیر بعدی توی خط بعد باشه.و بعد هم از تابع خارج میشیم چون دیگه این مسیر تمومه و چیزی واسه این مسیر نیست که چاپ کنیم:
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
اینجا چک میشه که اگه تعداد مسیر های مجاز به سمت راست صفر نشده بود میتونیم یکی به سمت راست بریم(R چاپ میشه) و بعد خود تابع رو صدا میزنیم تا بقیه این مسیر رو ادامه بده و اینجا چون یکی به سمت راست کردیم یکی از تعداد مسیر های مجاز به سمت راست کم میشه (nRight - 1) ولی هنوز تعداد مسیر های به سمت پایین nDown هست و چون یکی به جلو رفتیم در حرکت بعدی قرار گرفتیم(iCol + 1)