Tassos icon

Αναδρομική συνάρτηση υπολογισμού διπλού παραγοντικού-V2.

Tassos | PRO | 05/04/14 10:46:20 AM UTC | 0 ⭐ | 415 👁️ | Never ⏰ | []
C |

2.9 KB

|

None

|

0 👍

/

0 👎

{                                  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!                            }

Comments