Last active
December 5, 2016 21:54
-
-
Save kgashok/7be16089d877bc1017e5cba56bb76fe2 to your computer and use it in GitHub Desktop.
palindromesKeys.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <!DOCTYPE html> | |
| <html> | |
| <head> | |
| <meta charset="utf-8"> | |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| <title>palindromesKeys.md</title> | |
| <link rel="stylesheet" href="https://stackedit.io/res-min/themes/base.css" /> | |
| <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML"></script> | |
| </head> | |
| <body><div class="container"><h2 id="table-of-contents">Table of Contents</h2> | |
| <p>Take a look at the <a href="https://rawgit.com/kgashok/ddfaf6065dbb5e51bd18348e1a3a227c/raw/877998027755a4e138fbc0fb7eb8b0a0ccb9872e/recursiveFunc.md">HTML</a> version for TOC.</p> | |
| <p><div class="toc"> | |
| <ul> | |
| <li><ul> | |
| <li><a href="#table-of-contents">Table of Contents</a><ul> | |
| <li><a href="#recursive-factorial">Recursive Factorial</a></li> | |
| <li><a href="#recursive-fibonacci-series">Recursive Fibonacci Series</a><ul> | |
| <li><a href="#output">Output</a></li> | |
| </ul> | |
| </li> | |
| <li><a href="#recursive-sum">Recursive Sum</a></li> | |
| <li><a href="#recursive-palindrome">Recursive Palindrome</a><ul> | |
| <li><a href="#output-1">Output</a></li> | |
| </ul> | |
| </li> | |
| <li><a href="#recursive-linked-list">Recursive Linked List</a><ul> | |
| <li><a href="#output-2">Output</a></li> | |
| </ul> | |
| </li> | |
| </ul> | |
| </li> | |
| </ul> | |
| </li> | |
| </ul> | |
| </div> | |
| </p> | |
| <h3 id="recursive-factorial">Recursive Factorial</h3> | |
| <pre class="prettyprint"><code class="language-c hljs "><span class="hljs-preprocessor">#include <stdio.h> </span> | |
| <span class="hljs-keyword">int</span> factorial (<span class="hljs-keyword">int</span> n) { | |
| <span class="hljs-keyword">if</span> ( n == <span class="hljs-number">0</span> || n == <span class="hljs-number">1</span>) <span class="hljs-comment">// TERMINAL CONDITION</span> | |
| <span class="hljs-keyword">return</span> <span class="hljs-number">1</span>; | |
| <span class="hljs-keyword">return</span> n * factorial (n-<span class="hljs-number">1</span>); | |
| } | |
| <span class="hljs-keyword">int</span> main (<span class="hljs-keyword">int</span> argc, <span class="hljs-keyword">char</span>** argv) { | |
| <span class="hljs-keyword">int</span> number = atoi (argv[<span class="hljs-number">1</span>]); <span class="hljs-comment">// or do scanf()</span> | |
| <span class="hljs-keyword">int</span> fval = factorial(number); | |
| <span class="hljs-built_in">printf</span> (<span class="hljs-string">"The factorial of %d is %d\n"</span>, number, fval); | |
| <span class="hljs-keyword">return</span> <span class="hljs-number">0</span>; | |
| }</code></pre> | |
| <h3 id="recursive-fibonacci-series">Recursive Fibonacci Series</h3> | |
| <pre class="prettyprint"><code class="language-c hljs "><span class="hljs-preprocessor">#include <stdio.h> </span> | |
| <span class="hljs-keyword">int</span> generate_fibo (<span class="hljs-keyword">int</span> fibopp, <span class="hljs-keyword">int</span> fibop, <span class="hljs-keyword">int</span> count, <span class="hljs-keyword">int</span> slen) { | |
| <span class="hljs-keyword">int</span> fibo = fibopp + fibop; | |
| <span class="hljs-built_in">printf</span> (<span class="hljs-string">"%d "</span>, fibo); | |
| <span class="hljs-keyword">if</span> (count == slen) { <span class="hljs-comment">// TERMINAL CONDITION</span> | |
| <span class="hljs-keyword">return</span> fibo; <span class="hljs-comment">// for the nth Fibonacci number</span> | |
| } | |
| <span class="hljs-comment">// prepare to generate the next in sequence</span> | |
| fibopp = fibop; | |
| fibop = fibo; | |
| <span class="hljs-keyword">return</span> generate_fibo (fibopp, fibop, count+<span class="hljs-number">1</span>, slen); | |
| } | |
| main (<span class="hljs-keyword">int</span> argc, <span class="hljs-keyword">char</span>** argv) { | |
| <span class="hljs-keyword">int</span> seq_length = atoi (argv[<span class="hljs-number">1</span>]); | |
| <span class="hljs-keyword">if</span> (seq_length <= <span class="hljs-number">2</span>) <span class="hljs-keyword">return</span> <span class="hljs-number">1</span>; | |
| <span class="hljs-built_in">printf</span> (<span class="hljs-string">"The fibonacci sequence (%d) is "</span>, seq_length); | |
| <span class="hljs-keyword">int</span> fibo1 = <span class="hljs-number">0</span>, fibo2 = <span class="hljs-number">1</span>; | |
| <span class="hljs-built_in">printf</span> (<span class="hljs-string">"%d %d "</span>, fibo1, fibo2); | |
| <span class="hljs-keyword">int</span> fibFinal = generate_fibo (fibo1, fibo2, <span class="hljs-number">3</span>, seq_length); | |
| <span class="hljs-built_in">printf</span> (<span class="hljs-string">"\nThe %d in fibonacci sequence is %d\n"</span>, seq_length, fibFinal); | |
| <span class="hljs-keyword">return</span> <span class="hljs-number">0</span>; | |
| } | |
| </code></pre> | |
| <h4 id="output">Output</h4> | |
| <pre class="prettyprint"><code class=" hljs vhdl">The fibonacci <span class="hljs-keyword">sequence</span> (<span class="hljs-number">13</span>) <span class="hljs-keyword">is</span> <span class="hljs-number">0</span> <span class="hljs-number">1</span> <span class="hljs-number">1</span> <span class="hljs-number">2</span> <span class="hljs-number">3</span> <span class="hljs-number">5</span> <span class="hljs-number">8</span> <span class="hljs-number">13</span> <span class="hljs-number">21</span> <span class="hljs-number">34</span> <span class="hljs-number">55</span> <span class="hljs-number">89</span> <span class="hljs-number">144</span> | |
| The <span class="hljs-number">13</span> <span class="hljs-keyword">in</span> fibonacci <span class="hljs-keyword">sequence</span> <span class="hljs-keyword">is</span> <span class="hljs-number">144</span> | |
| </code></pre> | |
| <h3 id="recursive-sum">Recursive Sum</h3> | |
| <pre class="prettyprint"><code class=" hljs axapta"><span class="hljs-preprocessor">#include <stdio.h> </span> | |
| <span class="hljs-keyword">int</span> rec_sum (<span class="hljs-keyword">int</span>* s, <span class="hljs-keyword">int</span> size) { | |
| <span class="hljs-keyword">if</span> (size == <span class="hljs-number">0</span>) <span class="hljs-comment">// TERMINAL CONDITION</span> | |
| <span class="hljs-keyword">return</span> <span class="hljs-number">0</span>; | |
| <span class="hljs-keyword">int</span> sumval = *s; <span class="hljs-comment">// get element</span> | |
| <span class="hljs-keyword">return</span> sumval + rec_sum(++s, --size); | |
| } | |
| <span class="hljs-keyword">int</span> main () { | |
| <span class="hljs-keyword">int</span> s[<span class="hljs-number">7</span>] = {<span class="hljs-number">1</span>, <span class="hljs-number">2</span>, <span class="hljs-number">3</span>, <span class="hljs-number">4</span>, <span class="hljs-number">5</span>, <span class="hljs-number">6</span>, <span class="hljs-number">7</span>}; | |
| <span class="hljs-keyword">int</span> <span class="hljs-keyword">sum</span> = rec_sum (s, <span class="hljs-number">7</span>); | |
| printf (<span class="hljs-string">"The sum is %d\n"</span>, <span class="hljs-keyword">sum</span>); | |
| <span class="hljs-keyword">return</span> <span class="hljs-number">0</span>; | |
| }</code></pre> | |
| <h3 id="recursive-palindrome">Recursive Palindrome</h3> | |
| <pre class="prettyprint"><code class="language-c hljs "><span class="hljs-preprocessor">#include <stdio.h> </span> | |
| <span class="hljs-preprocessor">#include <string.h> </span> | |
| <span class="hljs-keyword">int</span> is_palindrome (<span class="hljs-keyword">char</span>* front, <span class="hljs-keyword">char</span>* back) { | |
| <span class="hljs-keyword">if</span> (*front != *back) { <span class="hljs-comment">// TERMINAL CONDITION_1 - there is no match</span> | |
| <span class="hljs-comment">// printf ("front: %c != back: %c\n", *front, *back); </span> | |
| <span class="hljs-keyword">return</span> <span class="hljs-number">0</span>; | |
| } | |
| <span class="hljs-keyword">if</span> (front >= back) <span class="hljs-comment">// TERMINAL CONDITION_2 - there is nothing more</span> | |
| <span class="hljs-keyword">return</span> <span class="hljs-number">1</span>; | |
| <span class="hljs-comment">// printf ("front: %c == back: %c\n", *front, *back); </span> | |
| <span class="hljs-keyword">return</span> is_palindrome (++front, --back); | |
| } | |
| <span class="hljs-keyword">int</span> main () { | |
| <span class="hljs-keyword">char</span> input[<span class="hljs-number">30</span>]; | |
| <span class="hljs-built_in">scanf</span> (<span class="hljs-string">"%s"</span>, input); | |
| <span class="hljs-keyword">char</span>* front = input; | |
| <span class="hljs-keyword">char</span>* back = input + <span class="hljs-built_in">strlen</span>(input)-<span class="hljs-number">1</span>; | |
| <span class="hljs-keyword">int</span> res = is_palindrome(front, back); | |
| <span class="hljs-built_in">printf</span> (<span class="hljs-string">"%s is a palindrome: %s\n "</span>, input, | |
| (res==<span class="hljs-number">1</span>? <span class="hljs-string">"True"</span> : <span class="hljs-string">"False"</span>)); | |
| <span class="hljs-keyword">return</span> <span class="hljs-number">0</span>; | |
| }</code></pre> | |
| <h4 id="output-1">Output</h4> | |
| <pre class="prettyprint"><code class=" hljs applescript">malayalam | |
| <span class="hljs-keyword">front</span>: m == <span class="hljs-keyword">back</span>: m | |
| <span class="hljs-keyword">front</span>: a == <span class="hljs-keyword">back</span>: a | |
| <span class="hljs-keyword">front</span>: l == <span class="hljs-keyword">back</span>: l | |
| <span class="hljs-keyword">front</span>: a == <span class="hljs-keyword">back</span>: a | |
| malayalam <span class="hljs-keyword">is</span> a palindrome: True | |
| abcdefcba | |
| <span class="hljs-keyword">front</span>: a == <span class="hljs-keyword">back</span>: a | |
| <span class="hljs-keyword">front</span>: b == <span class="hljs-keyword">back</span>: b | |
| <span class="hljs-keyword">front</span>: c == <span class="hljs-keyword">back</span>: c | |
| <span class="hljs-keyword">front</span>: d != <span class="hljs-keyword">back</span>: f | |
| abcdefcba <span class="hljs-keyword">is</span> a palindrome: False</code></pre> | |
| <h3 id="recursive-linked-list">Recursive Linked List</h3> | |
| <pre class="prettyprint"><code class="language-c hljs "><span class="hljs-preprocessor">#include <stdio.h> </span> | |
| <span class="hljs-preprocessor">#include <stdlib.h> </span> | |
| <span class="hljs-keyword">struct</span> node { | |
| <span class="hljs-keyword">int</span> data; | |
| <span class="hljs-keyword">struct</span> node* next; | |
| }; | |
| <span class="hljs-keyword">typedef</span> <span class="hljs-keyword">struct</span> node Node; | |
| Node *head = NULL; | |
| <span class="hljs-keyword">int</span> traverseSum (Node* np, <span class="hljs-keyword">int</span> i) { | |
| <span class="hljs-keyword">if</span> (np == NULL) <span class="hljs-comment">// TERMINAL CONDITION</span> | |
| <span class="hljs-keyword">return</span> <span class="hljs-number">0</span>; | |
| <span class="hljs-built_in">printf</span> (<span class="hljs-string">"node %d: %d\n"</span>, i++, np->data); | |
| <span class="hljs-keyword">return</span> np->data + traverseSum(np->next, i); | |
| } | |
| Node* createNode (<span class="hljs-keyword">int</span> val) { | |
| Node* n = (Node*) <span class="hljs-built_in">malloc</span> (<span class="hljs-keyword">sizeof</span> (<span class="hljs-keyword">struct</span> node)); | |
| n->data = val; | |
| n->next = NULL; | |
| <span class="hljs-keyword">return</span> n; | |
| } | |
| <span class="hljs-keyword">int</span> main () { | |
| <span class="hljs-keyword">int</span> numbers[<span class="hljs-number">8</span>] = {<span class="hljs-number">1</span>, <span class="hljs-number">2</span>, <span class="hljs-number">3</span>, <span class="hljs-number">4</span>, <span class="hljs-number">5</span>, <span class="hljs-number">6</span>, <span class="hljs-number">7</span>, <span class="hljs-number">8</span>}; | |
| <span class="hljs-comment">// forming the linked list</span> | |
| Node* head = (Node*)<span class="hljs-built_in">malloc</span> (<span class="hljs-keyword">sizeof</span>(<span class="hljs-keyword">struct</span> node)); | |
| Node* np = head; | |
| <span class="hljs-keyword">int</span> i; | |
| <span class="hljs-keyword">for</span> (i = <span class="hljs-number">0</span>; i< <span class="hljs-number">8</span>;i++, np = np->next) { | |
| np->next = createNode(numbers[i]); | |
| } | |
| <span class="hljs-keyword">int</span> res = traverseSum (head->next, <span class="hljs-number">0</span>); | |
| <span class="hljs-built_in">printf</span> (<span class="hljs-string">"Sum of the elements in list %d\n"</span>, res); | |
| <span class="hljs-keyword">return</span> <span class="hljs-number">0</span>; | |
| }</code></pre> | |
| <h4 id="output-2">Output</h4> | |
| <pre class="prettyprint"><code class=" hljs applescript">node <span class="hljs-number">0</span>: <span class="hljs-number">1</span> | |
| node <span class="hljs-number">1</span>: <span class="hljs-number">2</span> | |
| node <span class="hljs-number">2</span>: <span class="hljs-number">3</span> | |
| node <span class="hljs-number">3</span>: <span class="hljs-number">4</span> | |
| node <span class="hljs-number">4</span>: <span class="hljs-number">5</span> | |
| node <span class="hljs-number">5</span>: <span class="hljs-number">6</span> | |
| node <span class="hljs-number">6</span>: <span class="hljs-number">7</span> | |
| node <span class="hljs-number">7</span>: <span class="hljs-number">8</span> | |
| Sum <span class="hljs-keyword">of</span> <span class="hljs-keyword">the</span> elements <span class="hljs-keyword">in</span> <span class="hljs-type">list</span> <span class="hljs-number">36</span> | |
| </code></pre></div></body> | |
| </html> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment