Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- { Visit: http://g-lts.info/ for more code! }
- #include <stdio.h>
- unsigned long int odd_d_f(unsigned long int a, int b);
- /* Αναδρομική συνάρτηση που:
- - Παίρνει έναν αριθμό που ψάχνουμε για να βρούμε το παραγοντικό του
- - Παίρνει τον μειωμένο κατά 2 αριθμό αρχικό αριθμό.
- - Επιστρέφει τον παραγοντικό του αριθμού που λαμβάνει.
- Δουλεύει σωστά για ΠΕΡΙΤΤΌ αριθμό ΜΌΝΟ. */
- unsigned long int even_d_f(unsigned long int a, int b);
- /* Αναδρομική συνάρτηση που:
- - Παίρνει έναν αριθμό που ψάχνουμε για να βρούμε το παραγοντικό του
- - Παίρνει τον μειωμένο κατά 2 αριθμό αρχικό αριθμό.
- - Επιστρέφει τον παραγοντικό του αριθμού που λαμβάνει.
- Δουλεύει σωστά για ΆΡΤΙΟ αριθμό ΜΌΝΟ. */
- int main (void)
- {
- unsigned long int a;
- printf("Δώσε μου έναν ακέραιο : ");
- scanf("%ld", &a);
- if ( a % 2 == 1 ) /* Περιττός */
- printf("n!! = %lu\n",odd_d_f(a,a-2) ); /* Μειώνουμε ΕΞΑΡΧΉΣ τον ΑΡΧΙΚΟ αριθμό μας κατά 2 ( όπως λέει ο τύπος ) */
- else /* Άρτιος */
- printf("n!! = %lu\n",even_d_f(a,a-2) ); /* Μειώνουμε ΕΞΑΡΧΉΣ τον ΑΡΧΙΚΟ αριθμό μας κατά 2 ( όπως λέει ο τύπος ) */
- return 0;
- }
- /**************** Περιττή αναδρομική συνάρτηση. ****************/
- unsigned long int odd_d_f(unsigned long int a, int b)
- {
- if (b==1) /* Όπως λέει ο τύπος, στους ΠΕΡΙΤΤΟΎΣ μέχρι το 1! */
- return a;
- else
- odd_d_f(a*b,b-2);
- /* Μειώνουμε ξανά τον αριθμό μας κατά 2 ( όπως λέει ο τύπος ) */
- }
- /***************** Τέλος περιττής αναδρομικής συνάρτησης *****************/
- /**************** Άρτια αναδρομική συνάρτηση. ****************/
- unsigned long int even_d_f(unsigned long int a, int b)
- {
- if (b==0) /* Όπως λέει ο τύπος, στους ΆΡΤΙΟΥΣ μέχρι ΚΑΙ τον 2! για αυτό και το τέλος τώρα γίνεται στο 0 και όχι στο 2.. ;) */
- return a;
- else
- even_d_f(a*b,b-2);
- /* Μειώνουμε ξανά τον αριθμό μας κατά 2 ( όπως λέει ο τύπος ) */
- }
- /***************** Τέλος άρτιας αναδρομικής συνάρτησης *****************/
- { Visit: http://g-lts.info/ for more code! }
Advertisement
Add Comment
Please, Sign In to add comment