Tassos icon

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

Tassos | PRO | 05/04/14 09:36:33 AM UTC | 0 ⭐ | 420 👁️ | Never ⏰ | []
C |

2.57 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) );
else /* Άρτιος */
    printf("n!! = %lu\n",even_d_f(a,a) );
 
return 0;
}
 
 
/**************** Περιττή αναδρομική συνάρτηση. ****************/
unsigned long int odd_d_f(unsigned long int a, int b)
 
{
if (b==1) /* Όπως λέει ο τύπος, στους ΠΕΡΙΤΤΟΎΣ μέχρι το 1! */
    return a;
else
    {
    b = b-2; /* Μειώνουμε τον ΑΡΧΙΚΟ αριθμό μας κατά 2 ( όπως λέει ο τύπος ) */
    odd_d_f(a*b,b); 
    }
}
 
/***************** Τέλος περιττής αναδρομικής συνάρτησης *****************/
 
 
/**************** Άρτια αναδρομική συνάρτηση. ****************/
 
unsigned long int even_d_f(unsigned long int a, int b)
 
{
 
if (b==2) /* Όπως λέει ο τύπος, στους ΆΡΤΙΟΥΣ μέχρι το 2! */
    return a;
else
    {
    b = b-2; /* Μειώνουμε τον ΑΡΧΙΚΟ αριθμό μας κατά 2 ( όπως λέει ο τύπος ) */
    even_d_f(a*b,b);
    }
}
 
 
/***************** Τέλος άρτιας αναδρομικής συνάρτησης *****************/
 
 
 
{                                  Visit:   http://g-lts.info/  for more code!                            }

Comments