{"id":624,"date":"2020-06-10T07:43:41","date_gmt":"2020-06-10T07:43:41","guid":{"rendered":"https:\/\/blog.prepbytes.com\/?p=624"},"modified":"2022-03-30T11:35:54","modified_gmt":"2022-03-30T11:35:54","slug":"mike-and-exam","status":"publish","type":"post","link":"https:\/\/prepbytes.com\/blog\/mike-and-exam\/","title":{"rendered":"Mike and Exam"},"content":{"rendered":"<p><img decoding=\"async\" src=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645179718729-Article_401.png\" alt=\"\" \/><\/p>\n<h3>CONCEPTS USED:<\/h3>\n<blockquote>\n<p>Recursion<\/p>\n<\/blockquote>\n<h3>DIFFICULTY LEVEL:<\/h3>\n<blockquote>\n<p>Medium<\/p>\n<\/blockquote>\n<h3>PROBLEM STATEMENT<code>(<\/code>SIMPLIFIED<code>)<\/code>:<\/h3>\n<blockquote>\n<p>Given an array containing <code>N<\/code> elements and an integer <code>K<\/code>, find the number of ways to calculate the value of <code>K<\/code> using array elements.<\/p>\n<\/blockquote>\n<p><a href=\"https:\/\/mycode.prepbytes.com\/problems\/recursion\/MIKEANDEXAM\" title=\"Go to mycode.prepbytes.com\" target=\"_blank\" rel=\"noopener noreferrer\"><u><strong><\/strong><\/u><\/a><\/p>\n<p><strong>NOTE<\/strong>:<\/p>\n<blockquote>\n<ol>\n<li>\n<p>The array contains both <code>(-ve)<\/code> and <code>(+ve)<\/code> integers.  <\/p>\n<\/li>\n<li>\n<p>Use only <code>Addition<\/code> and <code>Subtraction<\/code> to accomplish the task.<\/p>\n<\/li>\n<\/ol>\n<\/blockquote>\n<h4>For Example :<\/h4>\n<pre><code>Input : \n\nN = 4, K = 2\nA = [1 3 2 6] \n\nOutput : 5\n\nExplanation : All combinations that give 2 as output are - \n\n1st : +(2) = 2\n\n2nd : -(1) - (3) + (6) = 2\n\n3rd : -(1) + (3) = 2\n\n4th : +(1) - (2) + (3) = 2\n\n5th : +(1) - (2) - (3) + (6) = 2<\/code><\/pre>\n<h3>SOLVING APPROACH:<\/h3>\n<ol>\n<li>\n<p>The idea is to start processing array elements from <code>(i=0)<\/code> to <code>(i=N-1)<\/code>, with <code>K<\/code> as the required value.  <\/p>\n<\/li>\n<li>\n<p>Check if at any point the value of <code>i<\/code> becomes <code>(&gt;= N)<\/code> and the required value of <code>K<\/code> is not equal to <code>0<\/code>, simply return <code>0<\/code>. <\/p>\n<\/li>\n<li>\n<p>Else recursively check for the three possible cases :- <\/p>\n<ol>\n<li>Consider current element and add it to <code>K<\/code> (<code>Addition Operation<\/code>)  <\/li>\n<li>Consider current element and subtract it from <code>K<\/code> (<code>Subtaction Operation<\/code>) <\/li>\n<li>Don&#8217;t consider the current element.<\/li>\n<li>At any point if the value of <code>K<\/code> becomes <code>0<\/code>, return 1. <\/li>\n<\/ol>\n<\/li>\n<li>\n<p>Finally return the total <code>count<\/code> of the three cases.<\/p>\n<\/li>\n<\/ol>\n<h3>SOLUTIONS:<\/h3>\n\t\t\t\t\t\t<style>\r\n\t\t\t\t\r\n\t\t\t\t\t#tab_container_670 {\r\n\toverflow:hidden;\r\n\tdisplay:block;\r\n\twidth:100%;\r\n\tborder:0px solid #ddd;\r\n\tmargin-bottom:30px;\r\n\t}\r\n\r\n#tab_container_670 .tab-content{\r\n\tpadding:20px;\r\n\tborder: 1px solid #e6e6e6 !important;\r\n\tmargin-top: 0px;\r\n\tbackground-color:#ffffff !important;\r\n\tcolor: #000000 !important;\r\n\tfont-size:16px !important;\r\n\tfont-family: Open Sans !important;\r\n\t\r\n\t\tborder: 1px solid #e6e6e6 !important;\r\n\t}\r\n#tab_container_670 .wpsm_nav-tabs {\r\n    border-bottom: 0px solid #ddd;\r\n}\r\n#tab_container_670 .wpsm_nav-tabs > li.active > a, #tab_container_670 .wpsm_nav-tabs > li.active > a:hover, #tab_container_670 .wpsm_nav-tabs > li.active > a:focus {\r\n\tcolor: #000000 !important;\r\n\tcursor: default;\r\n\tbackground-color: #ffffff !important;\r\n\tborder: 1px solid #e6e6e6 !important;\r\n}\r\n\r\n#tab_container_670 .wpsm_nav-tabs > li > a {\r\n    margin-right: 0px !important; \r\n    line-height: 1.42857143 !important;\r\n    border: 1px solid #d5d5d5 !important;\r\n    border-radius: 0px 0px 0 0 !important; \r\n\tbackground-color: #e8e8e8 !important;\r\n\tcolor: #000000 !important;\r\n\tpadding: 15px 18px 15px 18px !important;\r\n\ttext-decoration: none !important;\r\n\tfont-size: 14px !important;\r\n\ttext-align:center !important;\r\n\tfont-family: Open Sans !important;\r\n}\r\n#tab_container_670 .wpsm_nav-tabs > li > a:focus {\r\noutline: 0px !important;\r\n}\r\n\r\n#tab_container_670 .wpsm_nav-tabs > li > a:before {\r\n\tdisplay:none !important;\r\n}\r\n#tab_container_670 .wpsm_nav-tabs > li > a:after {\r\n\tdisplay:none !important ;\r\n}\r\n#tab_container_670 .wpsm_nav-tabs > li{\r\npadding:0px !important ;\r\nmargin:0px;\r\n}\r\n\r\n#tab_container_670 .wpsm_nav-tabs > li > a:hover , #tab_container_670 .wpsm_nav-tabs > li > a:focus {\r\n    color: #000000 !important;\r\n    background-color: #e8e8e8 !important;\r\n\tborder: 1px solid #d5d5d5 !important;\r\n\t\r\n}\r\n#tab_container_670 .wpsm_nav-tabs > li > a .fa{\r\n\r\nmargin-right:5px !important;\r\n\r\nmargin-left:5px !important;\r\n\r\n\r\n}\r\n\r\n\t\t#tab_container_670 .wpsm_nav-tabs a{\r\n\t\t\tbackground-image: none;\r\n\t\t\tbackground-position: 0 0;\r\n\t\t\tbackground-repeat: repeat-x;\r\n\t\t}\r\n\t\t\t\r\n\r\n\r\n#tab_container_670 .wpsm_nav-tabs > li {\r\n    float: left;\r\n    margin-bottom: -1px !important;\r\n\tmargin-right:0px !important; \r\n}\r\n\r\n\r\n#tab_container_670 .tab-content{\r\noverflow:hidden !important;\r\n}\r\n\r\n\r\n@media (min-width: 769px) {\r\n\r\n\t#tab_container_670 .wpsm_nav-tabs > li{\r\n\t\tfloat:left !important ;\r\n\t\t\t\tmargin-right:-1px !important;\r\n\t\t\t\t\t}\r\n\t#tab_container_670 .wpsm_nav-tabs{\r\n\t\tfloat:none !important;\r\n\t\tmargin:0px !important;\r\n\t}\r\n\r\n\t#tab_container_670 .wpsm_nav-tabs > li {\r\n\t\t\t\t\r\n\t}\r\n\t#tab_container_670 .wpsm_nav{\r\n\t\t\t}\r\n\r\n}\r\n\r\n\r\n\r\n@media (max-width: 768px) {\r\n\t#tab_container_670 .wpsm_nav-tabs > li {\r\n\t\t\t\t\r\n\t}\r\n\t#tab_container_670 .wpsm_nav{\r\n\t\t\t}\r\n}\r\n\r\n\r\n\t.wpsm_nav-tabs li:before{\r\n\t\tdisplay:none !important;\r\n\t}\r\n\r\n\t@media (max-width: 768px) {\r\n\t\t\t\t\r\n\t\t\t\t.wpsm_nav-tabs{\r\n\t\t\tmargin-left:0px !important;\r\n\t\t\tmargin-right:0px !important; \r\n\t\t\t\r\n\t\t}\r\n\t\t\t\t#tab_container_670 .wpsm_nav-tabs > li{\r\n\t\t\tfloat:none !important;\r\n\t\t}\r\n\t\t\t\r\n\t}\t\t\t\t<\/style>\r\n\t\t\t\t<div id=\"tab_container_670\" >\r\n\t \r\n\t\t\t\t\t<ul class=\"wpsm_nav wpsm_nav-tabs\" role=\"tablist\" id=\"myTab_670\">\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t<li role=\"presentation\"  class=\"active\"  onclick=\"do_resize()\">\r\n\t\t\t\t\t\t\t\t<a href=\"#tabs_desc_670_1\" aria-controls=\"tabs_desc_670_1\" role=\"tab\" data-toggle=\"tab\">\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<i class=\"fa fa-code\"><\/i> \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t<span>C<\/span>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t<\/a>\r\n\t\t\t\t\t\t\t<\/li>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t<li role=\"presentation\"  onclick=\"do_resize()\">\r\n\t\t\t\t\t\t\t\t<a href=\"#tabs_desc_670_2\" aria-controls=\"tabs_desc_670_2\" role=\"tab\" data-toggle=\"tab\">\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<i class=\"fa fa-code\"><\/i> \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t<span>C++<\/span>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t<\/a>\r\n\t\t\t\t\t\t\t<\/li>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t<li role=\"presentation\"  onclick=\"do_resize()\">\r\n\t\t\t\t\t\t\t\t<a href=\"#tabs_desc_670_3\" aria-controls=\"tabs_desc_670_3\" role=\"tab\" data-toggle=\"tab\">\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<i class=\"fa fa-code\"><\/i> \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t<span>Java<\/span>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t<\/a>\r\n\t\t\t\t\t\t\t<\/li>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t<li role=\"presentation\"  onclick=\"do_resize()\">\r\n\t\t\t\t\t\t\t\t<a href=\"#tabs_desc_670_4\" aria-controls=\"tabs_desc_670_4\" role=\"tab\" data-toggle=\"tab\">\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<i class=\"fa fa-code\"><\/i> \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t<span>Python<\/span>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t<\/a>\r\n\t\t\t\t\t\t\t<\/li>\r\n\t\t\t\t\t\t\t\t\t\t\t <\/ul>\r\n\r\n\t\t\t\t\t  <!-- Tab panes -->\r\n\t\t\t\t\t  <div class=\"tab-content\" id=\"tab-content_670\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t <div role=\"tabpanel\" class=\"tab-pane  in active \" id=\"tabs_desc_670_1\">\r\n\t\t\t\t\t\t\t\t<!-- wp:enlighter\/codeblock {\"language\":\"c\"} -->\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"c\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\r\n\r\n#include &lt;stdio.h&gt;\r\n\r\nint findTotalWays(int arr[],int n,int i,int k){\r\n  \/* If all elements are processed and \r\n   target is not reached, return 0 *\/\r\n  if(i &gt;= n &amp;&amp; k != 0 )\r\n    return 0;\r\n\r\n  \/\/ If target is reached, return 1 \r\n  if(k == 0)\r\n    return 1;\r\n\r\n  \/* Return total count of three cases \r\n     1. Don't consider current element \r\n     2. Consider current element and subtract it from target \r\n     3. Consider current element and add it to target *\/\r\n  return  findTotalWays(arr,n,i+1,k) \r\n        + findTotalWays(arr,n,i+1,k+arr[i])\r\n        +findTotalWays(arr,n,i+1,k-arr[i]);\r\n}\r\n\r\nint main()\r\n{\r\n  int t;\r\n  scanf(&quot;%d&quot;,&amp;t);\r\n  while(t--){\r\n    int n,k;\r\n    scanf(&quot;%d %d&quot;,&amp;n,&amp;k);\r\n    int arr[n];\r\n    int sum = 0;\r\n    for(int i=0;i&lt;n;i++){\r\n      scanf(&quot;%d&quot;,&amp;arr[i]);\r\n    }\r\n    printf(&quot;%d&#92;n&quot;,findTotalWays(arr,n,0,k));\r\n  }\r\n  return 0;\r\n}\r\n<\/pre>\r\n<!-- \/wp:enlighter\/codeblock -->\r\n\r\n\r\n\t\t\t\t\t\t <\/div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t <div role=\"tabpanel\" class=\"tab-pane \" id=\"tabs_desc_670_2\">\r\n\t\t\t\t\t\t\t\t<!-- wp:enlighter\/codeblock {\"language\":\"cpp\"} -->\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"cpp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\r\n\r\n#include &lt;bits\/stdc++.h&gt;\r\nusing namespace std;\r\n\r\nint findTotalWays(int arr[],int n,int i,int k){\r\n  \/* If all elements are processed and \r\n     target is not reached, return 0 *\/\r\n  if(i &gt;= n &amp;&amp; k != 0 )\r\n    return 0;\r\n\r\n  \/\/ If target is reached, return 1 \r\n  if(k == 0)\r\n    return 1;\r\n\r\n  \/* Return total count of three cases \r\n     1. Don't consider current element \r\n     2. Consider current element and subtract it from target \r\n     3. Consider current element and add it to target *\/\r\n  return  findTotalWays(arr,n,i+1,k) \r\n        + findTotalWays(arr,n,i+1,k+arr[i])\r\n        +findTotalWays(arr,n,i+1,k-arr[i]);\r\n}\r\n\r\nint main()\r\n{\r\n  int t;cin&gt;&gt;t;\r\n  while(t--){\r\n    int n,k;cin&gt;&gt;n&gt;&gt;k;\r\n    int arr[n];\r\n    int sum = 0;\r\n    for(int i=0;i&lt;n;i++){\r\n      cin&gt;&gt;arr[i];\r\n    }\r\n    cout&lt;&lt;findTotalWays(arr,n,0,k)&lt;&lt;&quot;&#92;n&quot;;\r\n  }\r\n  return 0;\r\n}\r\n<\/pre>\r\n<!-- \/wp:enlighter\/codeblock -->\r\n\t\t\t\t\t\t <\/div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t <div role=\"tabpanel\" class=\"tab-pane \" id=\"tabs_desc_670_3\">\r\n\t\t\t\t\t\t\t\t<!-- wp:enlighter\/codeblock {\"language\":\"java\"} -->\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"java\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\r\nimport java.util.*;\r\nimport java.io.*;\r\n\r\npublic class Main {\r\n  static int findTotalWays(int arr[],int n,int i,int k){\r\n    \/* If all elements are processed and \r\n       target is not reached, return 0 *\/\r\n    if(i &gt;= n &amp;&amp; k != 0 )\r\n      return 0;\r\n\r\n    \/\/ If target is reached, return 1 \r\n    if(k == 0)\r\n      return 1;\r\n\r\n    \/* Return total count of three cases \r\n       1. Don't consider current element \r\n       2. Consider current element and subtract it from target \r\n       3. Consider current element and add it to target *\/  \r\n    return  findTotalWays(arr,n,i+1,k) \r\n          + findTotalWays(arr,n,i+1,k+arr[i])\r\n          +findTotalWays(arr,n,i+1,k-arr[i]);\r\n  }\r\n  public static void main(String args[]) throws IOException {\r\n    Scanner sc = new Scanner(System.in);\r\n    int t = sc.nextInt();\r\n    while(t!=0){\r\n      int n = sc.nextInt();\r\n      int k = sc.nextInt();\r\n      int arr[] = new int[n];\r\n      int sum = 0;\r\n      for(int i=0;i&lt;n;i++){\r\n        arr[i] = sc.nextInt();\r\n      }\r\n      System.out.println(findTotalWays(arr,n,0,k));\r\n      t--;\r\n    }\r\n  }\r\n}\r\n<\/pre>\r\n<!-- \/wp:enlighter\/codeblock -->\r\n\t\t\t\t\t\t <\/div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t <div role=\"tabpanel\" class=\"tab-pane \" id=\"tabs_desc_670_4\">\r\n\t\t\t\t\t\t\t\t<!-- wp:enlighter\/codeblock {\"language\":\"Python\"} -->\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"Python\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\r\ndef findTotalWays(arr, n, i, k):\r\n\t\r\n\tif(i &gt;= n and k != 0 ):\r\n\t\treturn 0\r\n\r\n\tif( k == 0 ):\r\n\t\treturn 1\r\n\r\n\treturn  findTotalWays(arr,n,i+1,k) + findTotalWays(arr,n,i+1,k+arr[i])  + findTotalWays(arr,n,i+1,k-arr[i])\r\n\r\nfor _ in range(int(input())):\r\n\t\r\n\tn, k = map(int, input().split())\r\n\tarr = list(map(int, input().split()))\r\n\t\r\n\tprint(findTotalWays(arr, n, 0, k))\r\n\r\n<\/pre>\r\n<!-- \/wp:enlighter\/codeblock -->\t\t\t\t\t\t <\/div>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t <\/div>\r\n\t\t\t\t\t \r\n\t\t\t\t <\/div>\r\n <script>\r\n\t\tjQuery(function () {\r\n\t\t\tjQuery('#myTab_670 a:first').tab('show')\r\n\t\t});\r\n\t\t\r\n\t\t\t\tjQuery(function(){\r\n\t\t\tvar b=\"fadeIn\";\r\n\t\t\tvar c;\r\n\t\t\tvar a;\r\n\t\t\td(jQuery(\"#myTab_670 a\"),jQuery(\"#tab-content_670\"));function d(e,f,g){\r\n\t\t\t\te.click(function(i){\r\n\t\t\t\t\ti.preventDefault();\r\n\t\t\t\t\tjQuery(this).tab(\"show\");\r\n\t\t\t\t\tvar h=jQuery(this).data(\"easein\");\r\n\t\t\t\t\tif(c){c.removeClass(a);}\r\n\t\t\t\t\tif(h){f.find(\"div.active\").addClass(\"animated \"+h);a=h;}\r\n\t\t\t\t\telse{if(g){f.find(\"div.active\").addClass(\"animated \"+g);a=g;}else{f.find(\"div.active\").addClass(\"animated \"+b);a=b;}}c=f.find(\"div.active\");\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\t\t\r\n\r\n\t\tfunction do_resize(){\r\n\r\n\t\t\tvar width=jQuery( '.tab-content .tab-pane iframe' ).width();\r\n\t\t\tvar height=jQuery( '.tab-content .tab-pane iframe' ).height();\r\n\r\n\t\t\tvar toggleSize = true;\r\n\t\t\tjQuery('iframe').animate({\r\n\t\t\t    width: toggleSize ? width : 640,\r\n\t\t\t    height: toggleSize ? height : 360\r\n\t\t\t  }, 250);\r\n\r\n\t\t\t  toggleSize = !toggleSize;\r\n\t\t}\r\n\r\n\r\n\t<\/script>\r\n\t\t\t\t\r\n\t\t\t\n<p>[forminator_quiz id=&quot;681&quot;]<\/p>\n<p>This article tried to discuss the concept of <strong>Recursion<\/strong>. Hope this blog helps you understand and solve the problem. To practice more problems on Recursion you can check out <a href=\"#\"><\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>CONCEPTS USED: Recursion DIFFICULTY LEVEL: Medium PROBLEM STATEMENT(SIMPLIFIED): Given an array containing N elements and an integer K, find the number of ways to calculate the value of K using array elements. NOTE: The array contains both (-ve) and (+ve) integers. Use only Addition and Subtraction to accomplish the task. For Example : Input : [&hellip;]<\/p>\n","protected":false},"author":52,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[46],"tags":[31,36,47],"class_list":["post-624","post","type-post","status-publish","format-standard","hentry","category-recursion-interview-programming","tag-coding-interview","tag-interview-coding","tag-recursion"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Recursion Interview Programming | Mike and Exam | Prepbytes<\/title>\n<meta name=\"description\" content=\"Given an array containing N elements and an integer K, find the number of ways to calculate the value of K using array elements.The array contains both (-ve) and (+ve) integers.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/prepbytes.com\/blog\/mike-and-exam\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Recursion Interview Programming | Mike and Exam | Prepbytes\" \/>\n<meta property=\"og:description\" content=\"Given an array containing N elements and an integer K, find the number of ways to calculate the value of K using array elements.The array contains both (-ve) and (+ve) integers.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/prepbytes.com\/blog\/mike-and-exam\/\" \/>\n<meta property=\"og:site_name\" content=\"PrepBytes Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prepbytes0211\/\" \/>\n<meta property=\"article:published_time\" content=\"2020-06-10T07:43:41+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-03-30T11:35:54+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645179718729-Article_401.png\" \/>\n<meta name=\"author\" content=\"Prepbytes\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Prepbytes\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/prepbytes.com\/blog\/mike-and-exam\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/mike-and-exam\/\"},\"author\":{\"name\":\"Prepbytes\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e\"},\"headline\":\"Mike and Exam\",\"datePublished\":\"2020-06-10T07:43:41+00:00\",\"dateModified\":\"2022-03-30T11:35:54+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/mike-and-exam\/\"},\"wordCount\":169,\"commentCount\":0,\"publisher\":{\"@id\":\"http:\/\/43.205.93.38\/#organization\"},\"image\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/mike-and-exam\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645179718729-Article_401.png\",\"keywords\":[\"Coding Interview\",\"interview-coding\",\"recursion\"],\"articleSection\":[\"Recursion Interview Programming\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/prepbytes.com\/blog\/mike-and-exam\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/prepbytes.com\/blog\/mike-and-exam\/\",\"url\":\"https:\/\/prepbytes.com\/blog\/mike-and-exam\/\",\"name\":\"Recursion Interview Programming | Mike and Exam | Prepbytes\",\"isPartOf\":{\"@id\":\"http:\/\/43.205.93.38\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/mike-and-exam\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/mike-and-exam\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645179718729-Article_401.png\",\"datePublished\":\"2020-06-10T07:43:41+00:00\",\"dateModified\":\"2022-03-30T11:35:54+00:00\",\"description\":\"Given an array containing N elements and an integer K, find the number of ways to calculate the value of K using array elements.The array contains both (-ve) and (+ve) integers.\",\"breadcrumb\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/mike-and-exam\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/prepbytes.com\/blog\/mike-and-exam\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/prepbytes.com\/blog\/mike-and-exam\/#primaryimage\",\"url\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645179718729-Article_401.png\",\"contentUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645179718729-Article_401.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/prepbytes.com\/blog\/mike-and-exam\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"http:\/\/43.205.93.38\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Recursion Interview Programming\",\"item\":\"https:\/\/prepbytes.com\/blog\/category\/recursion-interview-programming\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Mike and Exam\"}]},{\"@type\":\"WebSite\",\"@id\":\"http:\/\/43.205.93.38\/#website\",\"url\":\"http:\/\/43.205.93.38\/\",\"name\":\"PrepBytes Blog\",\"description\":\"ONE-STOP RESOURCE FOR EVERYTHING RELATED TO CODING\",\"publisher\":{\"@id\":\"http:\/\/43.205.93.38\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"http:\/\/43.205.93.38\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"http:\/\/43.205.93.38\/#organization\",\"name\":\"Prepbytes\",\"url\":\"http:\/\/43.205.93.38\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/blog.prepbytes.com\/wp-content\/uploads\/2025\/07\/uzxxllgloialmn9mhwfe.webp\",\"contentUrl\":\"https:\/\/blog.prepbytes.com\/wp-content\/uploads\/2025\/07\/uzxxllgloialmn9mhwfe.webp\",\"width\":160,\"height\":160,\"caption\":\"Prepbytes\"},\"image\":{\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/prepbytes0211\/\",\"https:\/\/www.instagram.com\/prepbytes\/\",\"https:\/\/www.linkedin.com\/company\/prepbytes\/\",\"https:\/\/www.youtube.com\/channel\/UC0xGnHDrjUM1pDEK2Ka5imA\"]},{\"@type\":\"Person\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e\",\"name\":\"Prepbytes\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/232042cd1a1ea0e982c96d2a2ec93fb70a8e864e00784491231e7bfe5a9e06b5?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/232042cd1a1ea0e982c96d2a2ec93fb70a8e864e00784491231e7bfe5a9e06b5?s=96&d=mm&r=g\",\"caption\":\"Prepbytes\"},\"url\":\"https:\/\/prepbytes.com\/blog\/author\/gourav-jaincollegedekho-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Recursion Interview Programming | Mike and Exam | Prepbytes","description":"Given an array containing N elements and an integer K, find the number of ways to calculate the value of K using array elements.The array contains both (-ve) and (+ve) integers.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/prepbytes.com\/blog\/mike-and-exam\/","og_locale":"en_US","og_type":"article","og_title":"Recursion Interview Programming | Mike and Exam | Prepbytes","og_description":"Given an array containing N elements and an integer K, find the number of ways to calculate the value of K using array elements.The array contains both (-ve) and (+ve) integers.","og_url":"https:\/\/prepbytes.com\/blog\/mike-and-exam\/","og_site_name":"PrepBytes Blog","article_publisher":"https:\/\/www.facebook.com\/prepbytes0211\/","article_published_time":"2020-06-10T07:43:41+00:00","article_modified_time":"2022-03-30T11:35:54+00:00","og_image":[{"url":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645179718729-Article_401.png","type":"","width":"","height":""}],"author":"Prepbytes","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Prepbytes","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/prepbytes.com\/blog\/mike-and-exam\/#article","isPartOf":{"@id":"https:\/\/prepbytes.com\/blog\/mike-and-exam\/"},"author":{"name":"Prepbytes","@id":"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e"},"headline":"Mike and Exam","datePublished":"2020-06-10T07:43:41+00:00","dateModified":"2022-03-30T11:35:54+00:00","mainEntityOfPage":{"@id":"https:\/\/prepbytes.com\/blog\/mike-and-exam\/"},"wordCount":169,"commentCount":0,"publisher":{"@id":"http:\/\/43.205.93.38\/#organization"},"image":{"@id":"https:\/\/prepbytes.com\/blog\/mike-and-exam\/#primaryimage"},"thumbnailUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645179718729-Article_401.png","keywords":["Coding Interview","interview-coding","recursion"],"articleSection":["Recursion Interview Programming"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/prepbytes.com\/blog\/mike-and-exam\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/prepbytes.com\/blog\/mike-and-exam\/","url":"https:\/\/prepbytes.com\/blog\/mike-and-exam\/","name":"Recursion Interview Programming | Mike and Exam | Prepbytes","isPartOf":{"@id":"http:\/\/43.205.93.38\/#website"},"primaryImageOfPage":{"@id":"https:\/\/prepbytes.com\/blog\/mike-and-exam\/#primaryimage"},"image":{"@id":"https:\/\/prepbytes.com\/blog\/mike-and-exam\/#primaryimage"},"thumbnailUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645179718729-Article_401.png","datePublished":"2020-06-10T07:43:41+00:00","dateModified":"2022-03-30T11:35:54+00:00","description":"Given an array containing N elements and an integer K, find the number of ways to calculate the value of K using array elements.The array contains both (-ve) and (+ve) integers.","breadcrumb":{"@id":"https:\/\/prepbytes.com\/blog\/mike-and-exam\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/prepbytes.com\/blog\/mike-and-exam\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/prepbytes.com\/blog\/mike-and-exam\/#primaryimage","url":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645179718729-Article_401.png","contentUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645179718729-Article_401.png"},{"@type":"BreadcrumbList","@id":"https:\/\/prepbytes.com\/blog\/mike-and-exam\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"http:\/\/43.205.93.38\/"},{"@type":"ListItem","position":2,"name":"Recursion Interview Programming","item":"https:\/\/prepbytes.com\/blog\/category\/recursion-interview-programming\/"},{"@type":"ListItem","position":3,"name":"Mike and Exam"}]},{"@type":"WebSite","@id":"http:\/\/43.205.93.38\/#website","url":"http:\/\/43.205.93.38\/","name":"PrepBytes Blog","description":"ONE-STOP RESOURCE FOR EVERYTHING RELATED TO CODING","publisher":{"@id":"http:\/\/43.205.93.38\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"http:\/\/43.205.93.38\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"http:\/\/43.205.93.38\/#organization","name":"Prepbytes","url":"http:\/\/43.205.93.38\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"http:\/\/43.205.93.38\/#\/schema\/logo\/image\/","url":"https:\/\/blog.prepbytes.com\/wp-content\/uploads\/2025\/07\/uzxxllgloialmn9mhwfe.webp","contentUrl":"https:\/\/blog.prepbytes.com\/wp-content\/uploads\/2025\/07\/uzxxllgloialmn9mhwfe.webp","width":160,"height":160,"caption":"Prepbytes"},"image":{"@id":"http:\/\/43.205.93.38\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/prepbytes0211\/","https:\/\/www.instagram.com\/prepbytes\/","https:\/\/www.linkedin.com\/company\/prepbytes\/","https:\/\/www.youtube.com\/channel\/UC0xGnHDrjUM1pDEK2Ka5imA"]},{"@type":"Person","@id":"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e","name":"Prepbytes","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"http:\/\/43.205.93.38\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/232042cd1a1ea0e982c96d2a2ec93fb70a8e864e00784491231e7bfe5a9e06b5?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/232042cd1a1ea0e982c96d2a2ec93fb70a8e864e00784491231e7bfe5a9e06b5?s=96&d=mm&r=g","caption":"Prepbytes"},"url":"https:\/\/prepbytes.com\/blog\/author\/gourav-jaincollegedekho-com\/"}]}},"_links":{"self":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/624","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/users\/52"}],"replies":[{"embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/comments?post=624"}],"version-history":[{"count":13,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/624\/revisions"}],"predecessor-version":[{"id":8354,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/624\/revisions\/8354"}],"wp:attachment":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/media?parent=624"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/categories?post=624"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/tags?post=624"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}