Recursion (Solved Problem 1)

Поділитися
Вставка
  • Опубліковано 15 жов 2024

КОМЕНТАРІ • 148

  • @Hiyori___
    @Hiyori___ 3 роки тому +40

    the tree makes sense but I cannot possibly understand the concept behind it. I'll come back to this when I'll have better knowledge

  • @ojaskumar2355
    @ojaskumar2355 3 роки тому +18

    This que is so looking so interesting... For now I didn't get the concept... Will definitely return to this que after getting some more concept about recursion 🙂

  • @krishpatil9609
    @krishpatil9609 4 роки тому +25

    After get(0) -->if(0True-->return-->
    control goes to
    *get(1)*---->> then get(n-3)=get(-2) and then if(-2True-->return to get(-2)
    And then evaluate print(n)
    ------->>>>here n=1 hence will be printed..
    Then control shifts to
    *get(2)*---->>get(2-3)=get(-1) then control will shift to if(-1>True-->>return-->get(-1)
    Then printf will get evaluated and hence will print
    n=2
    Then control shifts to
    *get(3)*--->>get(3-3)=get(0)-->>
    if(0True-->return to get(0)
    Evaluate printf
    n=3
    Now control transfers to
    *get(4)*--->>get(4-3)=get(1)-->
    if(1>False-->>Hence now
    get(n-1) will evaluate.(note:n=1 for following statements)
    -->>get(1-1)=get(0)-->>
    if(0return at get(1)-->now printf will evaluate and print n=1
    n=1
    Control will shift back to parent function i.e. get(4) hence it will print
    n=4
    Control shifts to
    *get(5)*--->>get(5-3)-->>get(2)-->
    if(2False--> get(n-1) will eval.
    Now n=2, get(n-1)=get(1)-->
    if(1False-->return to get(2)-->>get(n-1)-->get(1)
    And as get(1) evaluates printf will consider n=1
    Hence n=1 will be printed
    And control shifts to get(2) i.e.get(5-3)i.e.get(n-3)
    Hence printf will evaluate
    n=2.
    Control will shift back to parent function
    get(5)
    Hence will print n=5
    Same applicable for get(6)
    n=1
    n=2
    n=3
    n=6
    O/p:-- 123141251236
    I understood this much...still confused.
    It will be more helpful if someone can elaborate it more in deapth ..🥰

    • @aniketrohit7287
      @aniketrohit7287 2 роки тому +4

      thank you for sharing this i am also confused with that now it is much more clear

  • @nikhilanand984
    @nikhilanand984 4 роки тому +20

    coming back in this question is really confusing. please explain more clearly and easily. I am really looking forward to it.

  • @Karthik-or2fy
    @Karthik-or2fy 4 роки тому +27

    Confused program changed to simple program through your explanation 👌

  • @MeteorSky41
    @MeteorSky41 3 роки тому +4

    Guys watch it again to understand..
    And for if(n

  • @phani2739
    @phani2739 4 роки тому +42

    Now I understood how the gate questions be.

    • @hetaeramancer
      @hetaeramancer 3 роки тому

      What does GATE mean?

    • @phani2739
      @phani2739 3 роки тому +3

      @@hetaeramancer The Graduate Aptitude Test in Engineering (GATE) is anexamination that primarily tests the comprehensive understanding of various undergraduate subjects in engineering and science for admission into the Masters Program and Job in Public Sector Companies in India.

    • @akrzha
      @akrzha 3 роки тому

      @@hetaeramancer Graduate Aptitude Test in Engineering

  • @gopinathsubramani1320
    @gopinathsubramani1320 3 роки тому +12

    Now I understood how multiple recursion works...
    Thank you bro

  • @saswatpradhan5549
    @saswatpradhan5549 5 років тому +32

    This is a very confusing problem 🙁

  • @ahmed6569180
    @ahmed6569180 4 роки тому +9

    how is the condition is true when n=1 and if (n

    • @Sake679
      @Sake679 3 роки тому +1

      No if it's n

    • @bablu1921
      @bablu1921 3 роки тому

      Thats not how compiler will work its just takes the argument if 1 is less than 1 which in this case it's not therefore it will execute further

    • @charuarora6621
      @charuarora6621 3 роки тому

      and if it executes further it must not reach to get(0) part, there might be some problem with operators.

  • @radheshyamsingh1300
    @radheshyamsingh1300 5 років тому +59

    This program is really very confusing..

  • @radheyshreeagrawal8868
    @radheyshreeagrawal8868 2 роки тому +1

    this might be wrong, as when Get(1) is formed value of N is 2. and so on. sir please reply?

    • @TruthTongue
      @TruthTongue 7 місяців тому

      it is not 2, it is -2.

  • @pratikneupane951
    @pratikneupane951 3 роки тому +3

    I didn't understand when to use gate(n-1) and when to use get(n-3) .Please help me.

    • @dipeshranadipeshrana881
      @dipeshranadipeshrana881 Рік тому

      Its non tail recursive implement it's concept

    • @krishwanthkishore8299
      @krishwanthkishore8299 Рік тому

      ​@@dipeshranadipeshrana881yo he didn't mention any concept like that, in tail recursion there is no need to keep record of past recursions

  • @digitalgoldmine-007
    @digitalgoldmine-007 4 місяці тому

    could u plz make a video on how to guess the last part of recursive cuz teachers r making questions in exam which they give first part of recursive code and want us to write the other part.

  • @shravya8492
    @shravya8492 3 роки тому +5

    Though your explanation is excellent, this question is quite confusing😅. I guess I will come back again after watching some more videos.

  • @abhaypratap9898
    @abhaypratap9898 3 роки тому +2

    Please suggest any book for such questions 🥺🥺🥺

  • @bollyedits6030
    @bollyedits6030 4 роки тому +8

    If( 1< 1 ) , this condition is false so how get(0) is evaluated ?

    • @Sake679
      @Sake679 3 роки тому

      No it's true cause 1< 1 so we go to zero function next

    • @dekhbhai9328
      @dekhbhai9328 3 роки тому +1

      @@Sake679 no this is false 1

    • @MurariSingh-mw8ze
      @MurariSingh-mw8ze 3 роки тому +1

      @@dekhbhai9328 1 is not less than 1,1 is equal to 1
      therefore ,condition is true

    • @dekhbhai9328
      @dekhbhai9328 3 роки тому

      @@MurariSingh-mw8ze no bro there is clearly mention n

    • @muskansadaka9458
      @muskansadaka9458 3 роки тому +1

      @GAURAV MALHOTRA ya condition is false so it will not return . so get(0) will be called .
      Please think it like that :
      if(n-1)
      {
      return;
      }

  • @enjoylearning210
    @enjoylearning210 3 роки тому +3

    This problem is quite confusing ..I think 🤔 I need to watch it several times ...but ur way of explanation is pretty good

    • @scars707
      @scars707 3 роки тому

      No need to watch several times ,
      KHABY : LIFE MADE EAZY

  • @rtm4829
    @rtm4829 3 роки тому +3

    How after get(-2) it goes back to get(1) and then to get(2) ??

    • @cqwshi
      @cqwshi 11 місяців тому +1

      same doubt. but if you understand by now,can you please explain it?

  • @milesli2751
    @milesli2751 11 місяців тому +1

    I just wonder why we called the get() function 25 times, but when we run this code there are only 12 numbers are printed out?

    • @TruthTongue
      @TruthTongue 7 місяців тому

      ok so u see when we were calling the get(n-1) function, we were not able to reach the printf function. even after going to the get(n-3) function,..since the returned number were (n

  • @rohandevaki4349
    @rohandevaki4349 5 років тому

    after get (5) to get(4) to so on get(1) after that it becomes get(0) and it prints o and it comes out of the function right? please reply fast sir

  • @anonymousindinymous7306
    @anonymousindinymous7306 5 років тому +6

    sir pls expaliN how the OUTPUT is printed :
    o/p is::: 1 2 3 1 4 1 2 5 1 2 3 6
    pls explain each one by one its really cant understand with out u!
    Thanks for above wonderful simple explanation ........

    • @akshitarora470
      @akshitarora470 4 роки тому +2

      the get(n-3) value goes less than 1, the base case is triggered, it says to the caller, just stop what ever you're doing and return, at this point whatever the poor function get(n-3) had as the value of n, it prints it out in the next line and that explains the output! Try and dry run it on a sheet, you will see how the calling goes.

  • @eswarvankayala5606
    @eswarvankayala5606 4 роки тому +4

    Please any body reply me
    Why we return to get(2) after get(1)
    At 3:44 seconds in video??
    Please let me know

    • @zitrakzsingh7295
      @zitrakzsingh7295 4 роки тому +2

      get(1) completes get(0) and get(-2) so after that it wont call again so it will return to its parent call that is get(2)
      u can think it like the student reports to the teacher after all the work ,the teacher reports to the higher authority and so on ..

    • @tanaykamath1415
      @tanaykamath1415 4 роки тому

      Maybe bcoz its void!?

    • @nikhilanand984
      @nikhilanand984 4 роки тому +3

      I am having the same doubt. If anyone can clear it with valid concept

    • @Manuevaral
      @Manuevaral 4 роки тому +1

      because of this is recursion.....so compiler automatically set up as recursion body so it's going get(1) to get(2);-)

  • @riturajsharma3937
    @riturajsharma3937 2 роки тому +6

    These questions deserve 100.marks 😂

  • @techodisha4836
    @techodisha4836 3 роки тому +3

    I have to watch for infinite times🤯😂😂

  • @varunpandey3172
    @varunpandey3172 3 роки тому

    I have a doubt that when the fun will be 1 then at that time the condition is going to get wrong bcz if (n

  • @ravikiran3455
    @ravikiran3455 2 роки тому

    Awesome Explanation

  • @shahidmujawar9277
    @shahidmujawar9277 5 років тому +1

    Hello, can you please make a vedio on space and time complexity in c

  • @meenalsolanki9286
    @meenalsolanki9286 5 років тому +1

    I have a query in condition if( n

    • @vivekojha4807
      @vivekojha4807 5 років тому +2

      get(1) is called because the condition says strictly less than 1. When it calls get(0), the condition gets true and it goes back to get(1).

    • @jeedikantivenkat7814
      @jeedikantivenkat7814 5 років тому +2

      Guys dont get confused .
      Watch it twice
      U will get it ..

    • @Dnsx_plus
      @Dnsx_plus 4 роки тому

      @@jeedikantivenkat7814 thanks

    • @arjunshaik3071
      @arjunshaik3071 4 роки тому

      @@vivekojha4807 bro can u explain in clean manner plz

    • @vivekojha4807
      @vivekojha4807 4 роки тому

      @@arjunshaik3071 It's difficult to explain through text only. You need to visualize it. You may put the code in visualgo.net/en/recursion and visualize. But you should know how recursion stack works.

  • @thinq5339
    @thinq5339 2 роки тому

    my question is after calling get(1) in get(4) the get(1) should go back to get(2)

    • @codelikeapro9724
      @codelikeapro9724 2 роки тому

      at that point get(1) is branch of get(4) not get(2)..... or you can say get(1) comes from get(4) it will simply retrun back to it...

  • @riyazahmed7907
    @riyazahmed7907 5 років тому +2

    Beautiful explanation sir

  • @raosahebkolgatram9293
    @raosahebkolgatram9293 3 роки тому

    Is this indirect recursion?

  • @cyethacksolutions6761
    @cyethacksolutions6761 2 роки тому +4

    this is code for this recursion to count the Recursion output and count for calling
    #include
    int count=1;
    void get(int n)
    {
    if(n

    • @BilalBerek-tl3tq
      @BilalBerek-tl3tq Рік тому

      why do you initialize count from one bro
      what is logic

    • @akashade5031
      @akashade5031 Рік тому

      @@BilalBerek-tl3tq to count or include first call to get(6) by main() function

  • @gitanjalikumari9262
    @gitanjalikumari9262 3 роки тому +1

    Nice explanation sir...

  • @saipraneeth2311
    @saipraneeth2311 Рік тому

    Sir superb explanation sir.

  • @Anonymous____________A721
    @Anonymous____________A721 2 роки тому +1

    Can you explain with output

  • @andistheinforitbutso7513
    @andistheinforitbutso7513 2 роки тому +1

    Tough one nicely done ✔ 👏

  • @scien-terrific7004
    @scien-terrific7004 4 роки тому +1

    Ans should be 35...not 25 as when (n-1)=1 ; then (n-3)= -1 , not -2 & here @nesoacademy has done a mistake by taking (n-3)=-2, plz recheck it!

  • @tejastej2762
    @tejastej2762 3 роки тому

    Superb explanation

  • @PriyaSingh-ul4hl
    @PriyaSingh-ul4hl 4 роки тому +2

    What if we are asked about print output. Can anybody explain please?

    • @VikasKumar-xu8if
      @VikasKumar-xu8if 3 роки тому +2

      Output: 12131241213512131246
      and the function will be called 41 times , there is some mistake in above solution (explained in video) as you can check by running the program and counting the calls by a global variable initialized with zero.

    • @uraharakisuke5305
      @uraharakisuke5305 2 роки тому

      @@VikasKumar-xu8if 41 toh option mein bhi nahi hai

  • @VikashShukla07
    @VikashShukla07 3 роки тому +1

    Amazing question.nicely explained sir

  • @pratikagrawal8637
    @pratikagrawal8637 4 роки тому +1

    Superb... Content

  • @b.himanshu2654
    @b.himanshu2654 4 роки тому +1

    Excellent

  • @charuarora6621
    @charuarora6621 3 роки тому +1

    But when get(1) function is called .. condition(n

    • @areebshaikh321
      @areebshaikh321 3 роки тому +1

      Yes. After get (1) is called ,as (n

    • @chakradharthota1100
      @chakradharthota1100 3 роки тому

      Here get function is not in the if function.. so here condition failed if is not evaluted .. so control reaches to get (0)👍

  • @nour_780
    @nour_780 Рік тому

    Thank you

  • @dakshpatel1769
    @dakshpatel1769 Рік тому

    Thank you sir ❤

  • @HelloWorld40408
    @HelloWorld40408 Рік тому

    Thank you SIr

  • @Sake679
    @Sake679 3 роки тому

    Guys 1

  • @NandanKumar-vq9iw
    @NandanKumar-vq9iw 5 місяців тому

    It is wrong:- when get(1) called the function returns there is no way to call get(0)

    • @stepsjr
      @stepsjr 26 днів тому

      Its not 1 = 1 its n < 1

  • @kaveeshnayak4328
    @kaveeshnayak4328 5 років тому

    Great explaination

  • @manuelconte2127
    @manuelconte2127 6 місяців тому

    For all those who have had difficulty solving it, don't give up, try and try again; Sooner or later you will understand it, I assure you!

  • @hritushreemog9333
    @hritushreemog9333 5 років тому

    how there is 7 calls , i mean i got confused, i am getting 6 calls which gives me total 24 calls can you elaborate please

    • @zitrakzsingh7295
      @zitrakzsingh7295 4 роки тому +1

      count the get(6) call too

    • @ExploreWithShiva_
      @ExploreWithShiva_ 3 роки тому +1

      First we call get(6) till get(0) total 7 calls

    • @ExploreWithShiva_
      @ExploreWithShiva_ 3 роки тому

      Then iteration

    • @VikasKumar-xu8if
      @VikasKumar-xu8if 3 роки тому

      "get" function will be called 41 times , there is some mistake in above solution (explained in video) as you can check by running the program and counting the calls by a global variable initialized with zero.

    • @asharya5311
      @asharya5311 3 роки тому

      @@VikasKumar-xu8if But 41 is not present in the options.

  • @compangit1524
    @compangit1524 Рік тому

    Answer is Option B, 25

  • @psarvani6994
    @psarvani6994 5 років тому

    Sir how have you gone from step get(4) to get (5) as the value n will be 1 and we need to satisfy the condition n

    • @red_l6634
      @red_l6634 5 років тому

      yes thats why he writes +2 calls.he means that get(4-3)=get(1) plus what g(1) calls. But we know what get(1) calls!!! it calls get(0) and get(-2) n

  • @ruthviksaikalahastri7513
    @ruthviksaikalahastri7513 Рік тому

    Answer is (B) 25

  • @harmankaur3938
    @harmankaur3938 2 роки тому

    Thank you :)

  • @DSAbyraj1729
    @DSAbyraj1729 3 роки тому

    super question

  • @nikhilpachkor8349
    @nikhilpachkor8349 4 роки тому

    Nice problem.

  • @s.o.s6201
    @s.o.s6201 3 роки тому

    take a bow... god of C

  • @boyarangaswamy3430
    @boyarangaswamy3430 2 місяці тому

    here first iteration get(1)

    • @stepsjr
      @stepsjr 26 днів тому

      Its not 1 = 1 its n < 1

  • @talentotech-p1e
    @talentotech-p1e Рік тому

    I wonder what real program/algorithm would behave like that

  • @mohammadtaqiahsan5620
    @mohammadtaqiahsan5620 3 роки тому

    May I know your name sir?

  • @brocklesnarufcchamp1
    @brocklesnarufcchamp1 3 роки тому +3

    This question's not worth the trouble for 2 marks

  • @friedrichmyers
    @friedrichmyers 2 місяці тому

    Am I the only one who found it easy and got the answer first try?

  • @true4189
    @true4189 4 роки тому

    Thank u

  • @bellalmahtab8220
    @bellalmahtab8220 3 роки тому

    Understood

  • @sushantkumar4917
    @sushantkumar4917 3 роки тому +1

    Before starting video I made guss like
    (1+3)*6 = 24, so answer should be 25 😂😂✌️

    • @getayawkaltamrat1314
      @getayawkaltamrat1314 3 роки тому

      you will end up getting an A if you keeping guessing like this :D

  • @mlungisinkomo2382
    @mlungisinkomo2382 Рік тому

    DUDE YOU ARE DOPE

  • @nedstark9734
    @nedstark9734 5 років тому +2

    If you solved it in your mind you gonna confuse at some time so I solved it using method II and got correct answer on my first try

  • @sagarsahu6959
    @sagarsahu6959 3 роки тому

    This question is very interesting ❤️

  • @colloidalsilver177
    @colloidalsilver177 5 років тому +6

    2:52 is that part i am confused on

    • @sheentoosi9642
      @sheentoosi9642 5 років тому +3

      So my understanding is that the first recursive call at the end of the sequence stops because it satisfy the "n

  • @psarvani6994
    @psarvani6994 5 років тому

    Can someone explain me the answer

  • @latasharma7328
    @latasharma7328 4 роки тому

    N value????

  • @real_kim8455
    @real_kim8455 3 роки тому

    When we get the 1st get(0) after that why aren't we pop'ing out all the way back to get(6) & instead going to get(-2)?
    Unable to understand. Please explain.

  • @harshitpathak5376
    @harshitpathak5376 3 роки тому +1

    So much confusion 😕😐..

  • @shivamrohatgi4495
    @shivamrohatgi4495 17 днів тому

    not able to understand this one

  • @shibambiswas
    @shibambiswas 11 місяців тому

    👍

  • @gauravnegi7871
    @gauravnegi7871 5 років тому +2

    But there are 24 calls not 25

    • @BilalBerek-tl3tq
      @BilalBerek-tl3tq Рік тому

      you did not count first call from main function for get(6).

  • @jeedikantivenkat7814
    @jeedikantivenkat7814 5 років тому +2

    Guys dont get confused
    Its very easy

  • @shubhamjain154
    @shubhamjain154 3 роки тому

    This paper setter will definitely go in hell....

  • @nahidmony7860
    @nahidmony7860 Рік тому

    Brainstrorming

  • @dilipkumar-ku5jx
    @dilipkumar-ku5jx Рік тому

    fun fact: activation record also stores execution line where the function last left its execution and when it returns it starts executing from next line of execution line stored. I hope this comment will reduce the confusions if there are any
    +-------------------------------------+
    | Activation Record for 'get' |
    +-------------------------------------+
    | Parameters: |
    | |
    +-------------------------------------+
    | Local Variables: |
    | |
    +-------------------------------------+
    | Return Value: |
    | |
    +-------------------------------------+
    | Execution Line: |
    | get(n-1); |
    +-------------------------------------+

    • @cqwshi
      @cqwshi 11 місяців тому

      do you mean this by saying how the execution flow was from get (n-1) until n =0 and after this the flow was from only (n

  • @TEeducation
    @TEeducation 3 роки тому

    Awesome Explanation

  • @vivekojha4807
    @vivekojha4807 5 років тому

    Thank you sir.

  • @shaiksameerbasha4702
    @shaiksameerbasha4702 2 роки тому

    👍