Statistiques
| Révision :

root / Pi / C / examples / capi / fibmodule.c @ 308

Historique | Voir | Annoter | Télécharger (486 octet)

1 7 equemene
#include <Python.h>
2 7 equemene
3 7 equemene
int _fib(int n)
4 7 equemene
{
5 7 equemene
  if (n < 2)
6 7 equemene
    return n;
7 7 equemene
  else
8 7 equemene
    return _fib(n-1) + _fib(n-2);
9 7 equemene
}
10 7 equemene
11 7 equemene
static PyObject* fib(PyObject* self, PyObject* args)
12 7 equemene
{
13 7 equemene
  int n;
14 7 equemene
15 7 equemene
  if (!PyArg_ParseTuple(args, "i", &n))
16 7 equemene
    return NULL;
17 7 equemene
18 7 equemene
  return Py_BuildValue("i", _fib(n));
19 7 equemene
}
20 7 equemene
21 7 equemene
static PyMethodDef FibMethods[] = {
22 7 equemene
  {"fib", fib, METH_VARARGS, "Calculate the Fibonacci numbers."},
23 7 equemene
  {NULL, NULL, 0, NULL}
24 7 equemene
};
25 7 equemene
26 7 equemene
PyMODINIT_FUNC
27 7 equemene
initfib(void)
28 7 equemene
{
29 7 equemene
  (void) Py_InitModule("fib", FibMethods);
30 7 equemene
}